「PL/M」の版間の差分
編集の要約なし |
|||
21行目: | 21行目: | ||
== PL/M sample code == |
== PL/M sample code == |
||
< |
<syntaxhighlight lang="rexx"> |
||
FIND: PROCEDURE(PA,PB) BYTE; |
FIND: PROCEDURE(PA,PB) BYTE; |
||
DECLARE (PA,PB) BYTE; |
DECLARE (PA,PB) BYTE; |
||
43行目: | 43行目: | ||
RETURN MATCH; |
RETURN MATCH; |
||
END FIND; |
END FIND; |
||
</syntaxhighlight> |
|||
</source> |
|||
==脚注== |
==脚注== |
2020年7月5日 (日) 23:11時点における版
登場時期 | 1973年[1][2] |
---|---|
開発者 | デジタルリサーチのゲイリー・キルドール[3] |
影響を受けた言語 | ALGOL, PL/I, XPL |
PL/M(Programming Language for Microcomputersの頭文字[1][2])はゲイリー・キルドール[1][2][4][3]が1972年[1][2]に設計・開発した高水準プログラミング言語で、インテルで働くハンク・スミス[1][2]のマイクロプロセッサのために開発された。
PL/I、ALGOL、XPLを参考に[1][2]しており、マクロ処理機能があった。キルドールはワシントン大学在学中にB5500を使用しており[1]、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 8048やIntel 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トランスレーターなどの社外ツールが存在している(下記外部リンクを参照)。
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;
脚注
- ^ a b c d e f “In His Own Words: Gary Kildall”. Remarkable People. Computer History Museum (2016年8月2日). 2019年12月21日閲覧。
- ^ a b c d e f Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry. Kildall Family. (2016-08-02) 2016年11月17日閲覧。.
- ^ a b “Gary Kildall and Collegial Entrepreneurship”. Dr. Dobb's Journal. (2001-06-22) 2006年11月20日閲覧。.
- ^ ISIS, Intellec, PL/M and Intel
参考文献
- Intel Corporation (1976). PL/M-80 Programming Manual. Doc # 98-268B.
- McCracken, Daniel D. (1978). A Guide to PL/M Programming for Microcomputer Applications. Pearson Addison-Wesley.
外部リンク
- PL/M 386 Programmer’s Guide (PDF) – RadiSys Corporation, December 1999. Includes entire syntax of PL/M in BNF notation. Also available on Archive.org.
- PL/M-80 Programming Manual – Intel Corporation (On Bitsavers.org).
- MCS-8 Guide to PL/M Programming – Intel Corporation (On Bitsavers.org).
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。