appinventorというweb上で、好きなパーツをはめていくだけで
手軽にAndroidアプリが作れるものがあります。

http://www.atmarkit.co.jp/ait/articles/1103/15/news087.html

手軽でびっくりしたのですが、
androidアプリとして動く(apkファイルを作成する)までの流れが理解しきれず困っております。

GUIで操作及び、ブロックのロジックを設定する
↓
ブラウザベースのサービスなので、
そのロジックをもとに、javascriptでjavaのスクリプトに変換(翻訳?)する
↓
GUIの部分はどういうプロセスを踏んでかは不明だが、xmlファイルに変換し、ボタンなどの位置を記憶する
↓
apkファイル生成

といった漠然としたイメージは持っております。

特にわからないのは、どうして、ブラウザ上で作成したロジックがandroidアプリで動くようになているのかという点です。

前述のとおり、何かしらの方法で翻訳しているのだと思うのですが、
ただ翻訳するだけでなく、javaのファイルとして生成しなければいけないと思います。

その部分が私の今の理解度では追いついておらず、ブラックボックス化しております。

ソースコードを呼んだり、ググったりしていたのですが、よくわからず、質問させていただきました。
https://github.com/mit-cml/appinventor-sources

興味本位の質問ではありますが、すごく面白いないようなので、車輪の開発にはなりますが、
自分でも同じようなことができるようになりたいと思っております。

そのために何が必要なのかも差支えがなければ教えていただけると幸いです。

拙い知識ではありますが

  • 構文解析器
  • コンパイル

などが肝になるのかなと思っております。

また、少し話がそれますが、
rubymotionという、rubyの文法で、iOS と Android のモバイルアプリが開発できる言語?
があります。

こういうのも今回の質問内容に類似しており、気になるところではあります。

rubyの文法で書いたロジックを何かしらの形で翻訳し、javaやobjective-cに変換するのだと思うのですが、ここでいうところのその変換方法が何なのかがわかりませんでした。

不足事項などは都度追記させていただきます。
何卒よろしくお願いします。