Introduction of FORTH Language Update about FORTH masamickke
Introduction of FORTH Language Update? about FORTH 別府 政通 (べっぷ まさみち) (株)構造計画研究所 masamic@kke. co. jp May the FORTH be with you.
Contents l. Introduction (はじめに) l. RPN (Reverse Polish Notation) l(Virtual) Stack Machine l. Ultra Lightweight Language l. Self Extendible (自己拡張可能) l. Make it easy! (お手軽実装!) l. Past, Now & Future (過去から未来へ) l. Conclusion(まとめ?) 2021/2/26 3 GJF 2
(Virtual) Stack Machine l 初期の汎用機でStack Machineが存在 l 今はRegister Machineが主流だが、Stackは今でもほ とんどのプロセッサで重要な要素として存在。 l オリジナルFORTHは Virtual Stack Machine (VM) l そのほかのVM代表例 l UCSD Pascal P-Code Interpreter (1978年) l Java-VM(1995年) l Forthチップ l Javaチップ 2021/2/26 3 GJF 5
Ultra Lightweight Language l Stack (Virtual) Machine のアセンブリ言語 l ROM化も可能なため組み込み系で広く利用される。 l Structured Programming l当然! l Multi Thread Programming l多くの実装系で標準(もしくはオプショナル)対応。 l Networking l残念ながら非常に限られている。 l Object Oriented Programming l. Win 32 forth/Swift. Forthなどで利用可能。 l Distributed Programming l今のところ実用レベルでの存在は不明。 2021/2/26 3 GJF 6
Self Extendible (1/2) l 自己拡張言語(LISPよりもメモリ管理などの低レ ベルな部分から拡張可能) l オリジナルFORTHには「SWITCH~CASE構文」が無 いが、同様のものを実装するのは非常に簡単。 l 以下に例を示す。ワケワカかもしれないだろうが…。 拡張プログラム : ADRS : CASE : OF HERE OVER – SWAP ? COMP DEPTH R# ! 4 ? PAIRS COMPILE HERE 0 , COMPILE : ENDOF 5 ? PAIRS COMPILE IMMEDIATE : ENDCASE 4 ? PAIRS COMPILE BEGIN DEPTH R# @ 拡張構文 ! ; 4 ; IMMEDIATE OVER COMPILE = COMPILE 0 BRANCH DROP 5 ; IMMEDIATE BRANCH HERE 0. SWAP !ADRS 4 ; DROP = 0= WHILE !ADRS REPEAT ; IMMEDIATE CASE <expr> OF <codes> ENDOF : : <default codes> ENDCASE 出典:井上外志雄 著 「標準FORTH」 共立出版株式会社 ISBN 4 -320 -02247 -5 p. 129 -130 2021/2/26 3 GJF 7
Past, Now & Future (3/3) / Future l 日本におけるFIG活動 l 第三世代: 2006 - 3 rd. Generation of Japan FIG (3 GJF) l ANSI/ISO/IEC FORTHで取り上げられていない項目の標準化。 l. Multi Thread Programming l. Networking l. Object Oriented Programming l. Distributed Programming l Leo Brodie’s “Thinking Forth” Update Project 本格参加。 l まずは日本語化から開始済み。(2006年 4月から) l もちろん本家へフィードバックする。 2021/2/26 3 GJF とりあえず 大風呂敷! 13
Thank you! まずは一度使ってみてください。判断はそれからです! This Presentation was Supported by Following Communities. 「プログラミング言語 FORTH」コミュニティ in mixi URL: http: //mixi. jp/view_community. pl? id=121720 and エンジニアの共創空間「encafe 〔エンカフェ〕」 SNS URL: http: //www. encafe. jp May the FORTH be with you. 2021/2/26 3 GJF 15
- Slides: 15