IP Library Granted Patent US 8,327,328
Granted Patent B2
US 8,327,328 · App. 12/766,908 · Granted Dec 4, 2012

System and method for creating target byte code

Assignee: Appcelerator, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,327,328
App. No.
12/766,908
Granted
Dec 4, 2012
Kind
B2
Abstract

A system and method for converting byte code of a first type into byte code of a second type. Byte code of a first type is received as input. The first byte code is converted into constituent byte code data elements that can comprise any logical unit or grouping of at least a portion of a software application. The first byte code data elements are mapped to data elements of a second byte code type. The second byte code data elements are assembled into a resulting second byte code.

Claims (27)

1. A method of converting byte code of a first type into byte code of a second type, the method comprising:

receiving a first byte code, wherein the first byte code is compiled from source code comprising Common Language Infrastructure programming language;

converting said first byte code into an intermediate language format;

parsing the intermediate language format to create an intermediate data structure wherein the intermediate data structure represents the syntactic structure of the first byte code;

converting Markup language into an object graph; and, converting the object graph and the intermediate data structure into a second byte code comprising SHOCKWAVE FLASH (SWF) byte code language format.

2. A method of converting byte code of a first type into byte code of a second type, comprising:

receiving a first byte code, wherein the first byte code is compiled from source code comprising Common Language Infrastructure programming language;

converting the first byte code into a plurality of data elements comprising namespaces, types, attributes and members;

mapping the namespaces data element of the first byte code to a SHOCKWAVE FLASH (SWF) indexes data element, mapping the types of the first byte code to at least SWF functions data element and SWF integers data element, and mapping the members of the first byte code to at least SWF object property data element and SWF event methods data element;

converting the SWF indexes data element, the SWF functions data element, the SWF integers data element, the SWF object property data element and the SWF event methods data element into a second byte code comprising SWF byte code language format.

3. A method of converting byte code of a first type into byte code of a second type, the method comprising:

receiving a first byte code comprising Common Language Infrastructure opcode;

separating the Common Language Infrastructure opcode into a plurality of categories comprising instantiations, stack operators, field access operators, method calls, argument access operators, comparison operators, mathematical operators, casting and conversion operators and exception handlers;

mapping each of the plurality of categories to a plurality of SHOCKWAVE FLASH (SWF) action data elements;

converting the plurality of SWF action data elements into a second byte code.

4. The method according to claim 3 wherein mapping each of the plurality of categories to a plurality of SWF action data elements comprises:

mapping the instantiation category to a plurality of SWF action data elements comprising NewMethod, NewObject, InitObject and InitArray;

mapping the stack operator category to a plurality of SWF action data elements comprising Push, Pop, StackSwap and PushDuplicate;

mapping the field access operators category to a plurality of SWF action data elements comprising GetVariable, SetVariable, GetMember and SetMember;

mapping the method call category to a plurality of SWF action data elements comprising CallFunction, CallMethod and Call; and

mapping the field access operators category to a plurality of SWF action data elements comprising Arguments, Array, GetVariable and Push.

5. The method according to claim 4 wherein mapping each of the plurality of categories to a plurality of SWF action data elements further comprises:

mapping the comparison operator category to a plurality of SWF action data elements comprising Equals, Less, Less2, StrictEquals, Greater and StringGreater;

mapping the flow control category to a plurality of SWF action data elements comprising If, Jump and Call;

mapping the Bit Operator category to a plurality of SWF action data elements comprising BitAnd, BitLShift, BitOr, BitRShift, BitURShift, BitXOr

mapping the Mathematical Operator category to a plurality of SWF action data elements comprising Add2, Less2, Modulo, Decrement, Increment, Add, Divide, Multiply and Subtract; and

mapping the exception handlers category to a plurality of SWF action data elements comprising Try and Throw.

Assignments (4)
SECURITY INTEREST Recorded Aug 27, 2015
From: APPCELERATOR, INC.
To: SILICON VALLEY BANK
Reel/Frame 036442/0008 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2011
From: COLTON, PAUL; LINDSEY, KEVIN EDWARD; MUSCHENETZ, ROLAND INGOMAR; DEBREUIL, ROBIN SEAN
To: XAMLON, INC.
Reel/Frame 026343/0248 →
CHANGE OF NAME Recorded May 26, 2011
From: XAMLON, INC.
To: APTANA, INC.
Reel/Frame 026343/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2011
From: APTANA, INC.
To: APPCELERATOR, INC.
Reel/Frame 026344/0050 →
Continuity (4)
Continuation 11373014 · Mar 10, 2006
Provisional Application 60661061 · Mar 11, 2005
Provisional Application 60663484 · Mar 18, 2005
Related Publication 20100262952A1 · Oct 14, 2010