There are lots of programming languages involved in App Inventor. MIT App Inventor 2 blocks code is a new programming language that doesn't have a name, but you could think of it as the "App Inventor Language". We're developing a textual version of this language called TAIL = Textual App Inventor Language. The blocks editor is top of the
Blockly blocks language framework so that it runs in a web browser. (In the first version of App Inventor, the blocks editor was implemented in Java on top of the
OpenBlocks blocks framework.) The Designer window is implemented in Java using the
Google Web Toolkit (GWT), which is translated to JavaScript so that it, too, runs in the browser. When you execute App Inventor blocks code in live development mode on an Android device, the blocks code is translated into Young Android Intermediate Language (YAIL), a Scheme-like language with parenthesized syntax. YAIL code is interpreted on the device by a YAIL interpreter in the MIT AI2 Companion. The YAIL interpreter is written in
Kawa, a version of Scheme implemented in Java. The interpreter loads Android libraries so that it has access to all the device features. When you package an App Inventor app to make a .apk file, the YAIL-interpreter-with-YAIL-program is compiled to Java bytecodes and then to Dalvik executable code (DEX).