*ASKAのページ [#n2497c4d]
-あすかと読みます。ASK Assemblerの略というのが語源です。まあぶっちゃけた話、[[OSASK]]を作るために考案された言語ってところでしょうか。
-今はIA-32、IA-16くらいにしか使えません。
-http://www.imasy.org/~kawai/osask/developers.html のtolsetの中にASKAは入っています。
-言語仕様設計:[[K]]&今原修一郎氏
-処理系実装:今原修一郎氏&Risa Papa氏
-将来的には[[GO]]の一部になる予定です。

*NASMとの文法比較 [#j28c403e]
-NASM (NASKも同じ:NASKについては[[GO]]を参照)
     XOR EAX,EAX
     XOR ECX.ECX
 loopsum:
     ADD EAX,ECX
     INC ECX
     CMP ECX,10
     JLE loopsum
-ASKA
   int sum == EAX, i == ECX;
   sum = 0; i = 0;
   do {
     sum += i;
     i++;
   } while (i <= 10);
-一見するとASKAはC言語のように見えますが、結局はただのアセンブラで、ASKAは上記NASMコードと全く同じコードを生成することを保障します。
-ASKAはアセンブラなので、たとえばsum += i++;みたいなことはできません。原則として一文=一命例です。
-ASKAはニーモニックがC言語風なので、他のCPU、たとえばZ80版になっても似たような記述で書けます。しかしもちろん、レジスタ数もレジスタ名も違いますし、それぞれの挙動だって微妙に違いますので、移植可能なわけではありません。そもそも移植可能になることを目指した言語ではなく、単に文法をC言語風にしたアセンブラなのです。それ以上を期待してはいけません。・・・逆にこの割り切りがあったからこそ、ASKAは実用的なレベルに到達したんだとも思っています。
*現状のASKAの問題点 [#z7a5f960]
-処理系の完成度がいまいちで、正規文法では表現可能だけど、うまくコンパイルできない表現がまだたくさんあります(LEA構文とか、IMUL構文とか)。このせいでほとんどの人にはお勧めしかねる状況です。ただ、読むのには結構向いている言語だとは思います。
*こめんと欄 [#i84738fd]
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS