JavaScriptでCOBOL

2,291 views
2,125 views

Published on

2012/4/21 JavaScript勉強会@平井

This is licensed under a Creative Commons Attribution-ShareAlike 2.1 Japan License.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,291
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • JavaScriptでCOBOL

    1. 1. JavaScriptでCOBOL 2012/04/21Kimura Youichi <kim.upsilon@bucyou.net>
    2. 2. 気付いたらKeynote買ってた
    3. 3. まづはじめに「サーバーサイド」ではありません(」・ω・)」 PROCEDURE!(/・ω・)/ 3 TIMES!スライド内の日本語はすべて歴史的仮名遣ひ(正仮名遣ひ)で書きます
    4. 4. ブラウザでCOBOL?
    5. 5. こんなかんじ
    6. 6. なにこれJavaScriptで実装されたCOBOLのコンパイラ高3の課題研究(作品制作)で作ったちなみに課題研究の評価は「4」
    7. 7. 本当にコンパイラ?
    8. 8. コンパイラです。たぶん・・・
    9. 9. jscobolのしくみ!1. 字句解析2. 構文解析3. JavaScriptコード生成4. eval(jscode) !!!
    10. 10. jscobolのしくみ (字句解析) IF AIF A >= 100 THEN >= DISPLAY A >= 100 100 THENEND-IF DISPLAY A >= 100ソースコード内の文字をトークン END-IF(字句)といふ細かい単位にまとめて並べる
    11. 11. jscobolのしくみ (構文解析) IF { A name: "if", >= expr: [ "A", ">=", 100 ], 100 then: [ THEN { DISPLAY name: "display", A >= 100 values: [ "A >= 100" ] END-IF } ],トークンの「並び」を else: null,「文法」として解釈! }
    12. 12. jscobolのしくみ (コード生成) { name: "if", JavaScriptなら簡単! expr: [ "A", ">=", 100 ], then: [ { name: "display", values: [ "A >= 100" ] } ], else: null, if (A >= 100) { } $("output").value += "A >= 100" + "n"; }
    13. 13. jscobolのしくみ (実行) jscode if (A >= 100) { $("output").value += "A >= 100" + "n"; } eval(jscode);
    14. 14. COBOLコンパイラ コンバーター
    15. 15. 言ひ訳すると・・・OpenCOBOLも似たやうな仕組み COBOLをC言語に変換して gccにコンパイルさせてる実行するところまで実装したらインタープリタぢゃね?
    16. 16. その他さすがに全ての構文は網羅できなかったので、ほとんどのCOBOLプログラムはたぶん動かないですCOMPUTE文作るの忘れてた
    17. 17. ソースコードとかCOBOLコンパイラと称する事実上のコンバーターhttps://upsilo.net/~upsilon/jscobol/https://github.com/upsilon-sub/jscobolこのスライドはSlideShareとかで公開します。ライセンスはCC BY-SA 2.1 JPです。

    ×