トップQs
タイムライン
チャット
視点

PL/M

ウィキペディアから

Remove ads

PL/M(Programming Language for Microcomputersの頭文字[1][2])はゲイリー・キルドール[1][2][4][3]が1972年[1][2]に設計・開発した高水準プログラミング言語で、インテルで働くハンク・スミス[1][2]マイクロプロセッサ英語版のために開発された。

概要 登場時期, 開発者 ...

PL/IALGOLXPL英語版を参考に[1][2]しており、マクロ処理機能があった。キルドールはワシントン大学在学中にB5500を使用しておりESPOL英語版のような高水準言語を用いたシステムプログラミングに高い可能性があることを知った。

Pascal、C、BASICなどのような現代の言語とは異なり、PL/Mには標準入出力機能がなかった。マイクロプロセッサのような非常に限定された環境下でのプログラミングをターゲットにしており、メモリ、I/O、割り込みなどに対して非常に効率よく直接的にアクセスできるよう設計された。PL/Mはマイクロプロセッサを用いたコンピュータで動作する最初の言語で、CP/Mの初期バージョンはアセンブラではなくこの言語を用いて実装された。1970年代から1980年代にかけ、インテルやザイログZ80の組み込みシステムでPL/Mが使用された。例えばCISC AS/400のサービスプロセッサのファームウェアはPL/Mで記述された。

オリジナルのPL/MコンパイラIntel 8008に対応していた。アップデート版は8080に対応し、新しいIntel 8085でも動作した他、8080の上位互換であるZilog Z80でも動作した。その後Intel 8048Intel 8051に対応し、8086 (8088)80186 (80188)などの8086系列に対応して、80286や32ビットの80386にも対応した。またPL/MコンパイラはIntel 8061英語版や8096/MCS-96英語版等の系列のプロセッサにも対応した。

PL/MコンパイラはIntel ISIS英語版などのOSでもCPUが同じであれば動作する「ネイティブ」設計である一方で、CP/MやマイクロソフトのMS-DOSやDECのVAX/VMSなどで動作するPLMXというクロスコンパイラもあった。

インテルは90年代以降PL/Mをサポートしていないが、PL/M-to-Cトランスレーターなどの社外ツールが存在している(下記外部リンクを参照)。

Remove ads

PL/M sample code

 FIND: PROCEDURE(PA,PB) BYTE;
    DECLARE (PA,PB) BYTE;
    /* 文字列SCRATCHからPAで始まりPBで終わる文字列を探す */
    DECLARE J ADDRESS,
        (K, MATCH) BYTE;
    J = BACK ;
    MATCH = FALSE;
        DO WHILE NOT MATCH AND (MAXM > J);
        LAST,J = J + 1; /* Jから検索を開始 */
        K = PA ; /* 文字列がKで一致するか */
            DO WHILE SCRATCH(K) = MEMORY(LAST) AND
                NOT (MATCH := K = PB);
            /* さらに1文字が一致 */
            K = K + 1; LAST = LAST + 1;
            END;
        END;
    IF MATCH THEN /* 格納先を移動 */
        DO; LAST = LAST - 1; CALL MOVER;
        END;
    RETURN MATCH;
    END FIND;
Remove ads

脚注

参考文献

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads