PL / M - PL/M

PL / M
Desenvolvedor Gary Kildall da Microcomputer Applications Associates
Apareceu pela primeira vez 1973 ( 1973 )
Influenciado por
ALGOL , PL / I , XPL

A linguagem de programação PL / M (um acrónimo de P ROGRAMAÇÃO L anguage para M icrocomputers ) é um alto nível de linguagem concebida e desenvolvida por Gary Kildall em 1973 para Hank Smith na Intel para os seus microprocessadores .

Visão geral

A linguagem incorporava ideias de PL / I , ALGOL e XPL , e possuía um macroprocessador integrado . Como um graduado da Universidade de Washington, Kildall havia usado seu computador Burroughs B5500 e, como tal, estava ciente do potencial de linguagens de alto nível, como ESPOL, para programação de sistemas.

Ao contrário de outras linguagens contemporâneas, como Pascal , C ou BASIC , PL / M não tinha rotinas de entrada ou saída padrão. Ele incluiu recursos direcionados ao hardware de baixo nível específico para os microprocessadores de destino e, como tal, poderia suportar acesso direto a qualquer local na memória, portas de E / S e sinalizadores de interrupção do processador de uma maneira muito eficiente. PL / M foi a primeira linguagem de programação de nível superior para computadores baseados em microprocessador e foi a linguagem de implementação original para as partes do sistema operacional CP / M que não foram escritas em assembler. Muitos sistemas embarcados baseados em Intel e Zilog Z80 foram programados em PL / M durante as décadas de 1970 e 1980. Por exemplo, o firmware do componente Service Processor do CISC IBM AS / 400 foi escrito em PL / M.

O compilador PL / M original tinha como alvo o Intel 8008 . Uma versão atualizada (PL / M-80) gerou código para o processador 8080 , que também funcionaria no Intel 8085 mais recente , bem como na família Zilog Z80 (já que é compatível com versões anteriores do 8080). Mais tarde, seguiram-se compiladores para a família de microcontroladores Intel 8048 e Intel 8051 (PL / M-51), bem como para o 8086 (8088) (PL / M-86), 80186 (80188) e subsequentes processadores baseados em 8086, incluindo o 80286 avançado e 80386 de 32 bits . Também havia compiladores PL / M desenvolvidos para microcontroladores posteriores, como a família de arquitetura Intel 8061 e 8096 / MCS-96 (PL / M-96).

Enquanto alguns compiladores PL / M eram "nativos", o que significa que eram executados em sistemas usando o mesmo microprocessador, por exemplo, para o sistema operacional Intel ISIS , havia também compiladores cruzados , por exemplo PLMX , que rodavam em outros ambientes operacionais, como Digital Research CP / M, Microsoft 's DOS , e digital Equipment Corporation ' s VAX / VMS .

PL / M não é mais suportado pela Intel, mas existem ferramentas de reposição, como tradutores de código-fonte PL / M para C.

Código de amostra PL / M

FIND: PROCEDURE(PA,PB) BYTE;
    DECLARE (PA,PB) BYTE;
    /* FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB */
    DECLARE J ADDRESS,
        (K, MATCH) BYTE;
    J = BACK ;
    MATCH = FALSE;
        DO WHILE NOT MATCH AND (MAXM > J);
        LAST,J = J + 1; /* START SCAN AT J */
        K = PA ; /* ATTEMPT STRING MATCH AT K */
            DO WHILE SCRATCH(K) = MEMORY(LAST) AND
                NOT (MATCH := K = PB);
            /* MATCHED ONE MORE CHARACTER */
            K = K + 1; LAST = LAST + 1;
            END;
        END;
    IF MATCH THEN /* MOVE STORAGE */
        DO; LAST = LAST - 1; CALL MOVER;
        END;
    RETURN MATCH;
    END FIND;

Referências

Leitura adicional

Este artigo é baseado em material retirado do Dicionário Online Gratuito de Computação anterior a 1 de novembro de 2008 e incorporado sob os termos de "relicenciamento" do GFDL , versão 1.3 ou posterior.