User:Jpbowen/Apparat (software)

Developer(s)Joa Ebert
Preview release
1.0 RC9 / 1 February 2011; 13 years ago (2011-02-01)
Written inScala
PlatformJava platform
TypeOptimizer
LicenseGNU Lesser General Public License
Websitegithub.com/joa/apparat

Apparat is an open-source language manipulation and optimization framework development project.[1]

Overview

edit

The Apparat software framework is for the ActionScript language released under the GNU Lesser General Public License (LGPL). It may also be used to perform static code analysis like reaching definitions and dominance analysis.[citation needed] The framework is inspired by Soot and written in the Scala programming language on the Java platform.[citation needed] It contains command-line tools to work with SWF files.

The project was initially hosted by Google on the Google Codefacility[2] but has since moved to GitHub.[3]

Dump

edit

The Dump tool extracts information of a compiled SWF file by analyzing its bytecode and structure. It can generate UML diagrams and inheritance graphs.[citation needed]

TDSI

edit

TDSI is a command-line tool which allows ActionScript developers to use the fast Alchemy opcodes. The use of predefined functions will be replaced with the corresponding bytecode resulting in a significant speed improvement.[citation needed]

Example

The following example shows the behaviour of TDSI. Since the call to a static method is considered slow[4] it will be replaced with the corresponding Alchemy opcode.

ActionScript:

 Memory.writeInt( 1, 0 );

Pseudo bytecode:

 GetLex Memory
 PushByte 1
 PushByte 0
 CallVoid writeInt, 2

After inline expansion:

 PushByte 1
 PushByte 0
 WriteInt

TAAS

edit

TreeAddressActionScript (TAAS) is an intermediate representation of ActionScript Bytecode in optional SSA form. The TAAS compiler is an optimizing compiler supporting:[citation needed]

See also

edit

References

edit
  1. ^ "apparat-framework". Google Groups. Google. Retrieved 28 March 2014.
  2. ^ "Apparat". Google Code. Google. Retrieved 28 March 2014.
  3. ^ Apparat "Apparat". GitHub. Retrieved 28 March 2014. {{cite web}}: Check |url= value (help)
  4. ^ "Performance testing static methods versus instance methods". Kalen Gibbons. Retrieved 2009-09-29.
edit

Category:Projects established in 2011 Category:2011 introductions Category:Free software projects Category:Free software programmed in Java Category:Free computer programming tools Category:Free UML tools Category:Google software