SlideShare a Scribd company logo
1 of 15
Download to read offline
USOO8762963B2
(12) United States Patent (10) Patent No.: US 8,762,963 B2
Shacham et al. (45) Date of Patent: Jun. 24, 2014
(54) TRANSLATION OF PROGRAMMING CODE 6,083,279 A * 7/2000 Cuomo et al. ................ 717.118
6,654,875 B1 * 1 1/2003 Hartnettet al. ... ... 712,211
6,775,814 B1* 8/2004 Jue et al. ........ ... 716, 106
(75) Inventors: ity Sly",El (US) 7,369,984 B2* 5/2008 Fairweather ...................... TO4/8
by Ben-Artzi. Palo Alto, CA (US); 7,921,432 B2* 4/2011 Tolguetal. ... T19,328
Alexei Alexevitch, Hertzlia (IL); 8,427.491 B2 * 4/2013 Keslin ............ ... 345,522
Amatzia Ben-Artzi, Palo Alto, CA 8443,348 B2 * 5/2013 McGuire et al. ... T17.146
(US); Tal Lavian, Sunnyvale, CA (US); 2003. O145011 A1* 7,2003 Su et al. ............. TO7/100
Alexander Glyakov, Petach Tikva (IL); 2004.?003997O A1* 2/2004 Barnard et al. ................. T14?43
Russell William McMahon, Woodside, (Continued)
CA (US); Yehuda Levi, Rishon LeZion
(IL) FOREIGN PATENT DOCUMENTS
WO WO 2005069125 A2 * 7,2005
(73) Assignee: Beck Fund B.V. L.L.C., Dover, DE (US) WO WO 2009012398 A1 * 1,2009
(*) Notice: Subject to any disclaimer, the term ofthis
patent is extended or adjusted under 35 OTHER PUBLICATIONS
U.S.C. 154(b) by 660 days. Interface (computer Science)—Wikipedia, the free encyclopedia,
(21) Appl. No.: 12/631,311 Dec. 3, 2008.*
Programming language Wikipedia, Dec. 6, 2003.*
(22) Filed: Dec. 4, 2009
(65) Prior Publication Data Primary Examiner — Don Wong
US 2010/0146492 A1 Jun. 10, 2010 Assistant Examiner — Daxin Wu
un. TU, (74) Attorney, Agent, or Firm —Novak Druce Connolly
Related U.S. Application Data Bove + Quigg LLP
(60) Provisional application No. 61/200,931, filed on Dec.
4, 2008. (57) ABSTRACT
(51) Int. Cl. Embodiments ofthe invention may provide methods and/or
G06F 9/44 (2006.01) systems for converting a source application to a platform
(52) U.S. Cl. independent application. Source programming language
USPC .......................................................... 717/137 code of the source application may be translated to target
(58) Field ofClassification Search programming language code of the platform-independent
USPC .......................................................... 717/137 application. The source programming language code may
Seeapplication file forcomplete search history. compriseConnected Limited Device Configuration (CLDC)
code, and the platform-independent programming language
(56) References Cited maybeindependentofoneormoredeviceplatforms. Further,
U.S. PATENT DOCUMENTS
5,664,061 A * 9/1997 Andreshak et al. ........... 704/275
5,768,564 A * 6/1998 Andrews et al. .............. 717/137
5.937,193 A * 8/1999 Evoy ............................. T17,140
one or more source resources associated with the Source
application may beconvertedto oneormoretarget resources.
23 Claims, 7 Drawing Sheets
Souiceapplication
102- 32
Source cois
W -
f Analyze exicay one ormore Transform one of more
charactersof source code a sourceresourcestogeneratea list oftokens target resoirees
71
704- Analyze syntactically the list of
takers to generateone or more
document abject modeis
70s
object rhosielstogetteratean
envirginitent CM
Process the are armore giocumenis
78
geheatetarget programmig
iaiguagecoie
Anayzethe enviroisier. O&Eto
2: W
382a
y target Code
Patfors-independeatApplication
Target
resources
US 8,762.963 B2
Page 2
(56) References Cited 2008/0168421 A1* 7/2008 Meijeret al. .................. 717/106
2008/0216060 A1* 9/2008 Vargas ......... 717 137
U.S. PATENT DOCUMENTS 2009/0044203 A1* 2,2009 Acker et al. . T19,320
2009/0070338 A1* 3/2009 Spitzig et al. 707/10
2004/0237072 A1* 11/2004 Gelissen ....................... 717/139 2009/0172371 A1* 7/2009 Joao et al. ..................... T12/240
2005/0172263 A1* 8,2005 Hariharan et al. 717/109 2009,0172652 A1* 7,2009 Simon et all T17,148
2005/0229152 A1* 10,2005 Connell et al. ................ T17,104 2009/0216344 A1* 8,2009 Bretin ............................. TOO, 21
2006/0101430 A1* 5/2006 Hayashi ........................ 717/137 2010/017.9996 A1* 7,2010 Jones et al. TO9,206
2007/0067373 A1* 3/2007 Higgins et al. ........ 707?2O6 2010/0306784 A1* 12/2010 Cooney et al. T19.313
2008/0016170 A1* 1/2008 MacKelpranget al. 709/206 2011/0145591 A1* 6/2011 Grzybowski .................. T13,189
2008/0028384 A1 1/2008 Dornet al. ............ 717, 162
2008/O127170 A1* 5/2008 Goldman et al. ............. 717/174 * cited by examiner
|eolaaq
&
8
&
&
US 8,762.963 B2
90.V
Sheet 1 of 7Jun. 24, 2014
||
U.S. Patent
US 8,762.963 B2Sheet 2 of 7Jun. 24, 2014U.S. Patent
£(9423
US 8,762.963 B2
srarar
4^
Sheet 3 of 7
•;
Jun. 24, 2014
$39,09&#43:24,29;
~~~~);
U.S. Patent
US 8,762.963 B2Sheet 4 of 7Jun. 24, 2014U.S. Patent
-aa.
T
4040ff33${105
|-~~~~···············
~~~~);~~~~~~~~~~~~~*~~~~*~*~*~*******************~*~~~~~~~~~~~~);
******************-------------------------××××××××××××××××××××,r,r,r,,,,,,,?{~~~~~);
US 8,762.963 B2Sheet 5 Of 7Jun. 24, 2014
wearearseries assasser sanawas sacraarea as asaasaas asas-as-arasaasa-a-a------------------------------------------
U.S. Patent
–
US 8,762.963 B2Sheet 6 of 7Jun. 24, 2014U.S. Patent
- - - - - - - - - - - - - - - - - - - rrrr or x as a case - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
s
-
R
s
s
8
p~~~~~~~~~|L------~~~~);|-AugogL
+--~~~~~--~~~~);{}
U.S. Patent Jun. 24, 2014 Sheet 7 Of 7 US 8,762.963 B2
Solice appication
8&a
32
2N Sotice
L- Soice Code Resources
coccoon
vy s:
.
7. Analyze exicaily one or more | | Transform one ormore
{&aces of SQ Ce Code to source resources to
target esources
saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. 70
Ajayze syntacticaiiy the list of R
generate a iist of tokens
tokens to generate one of ore
docuse object Odeis
y
---ce
zos Process the one or more documents object rodes to generate a
& visie C -
w a.
38 Airaiyze the eavironet DOM to
N generate target ogian rig
iaiguage Code -----
Piation-independent Applicatio:
204 -
N 3323 y —
arget Code 332- RE
esources
US 8,762,963 B2
1.
TRANSLATION OF PROGRAMMING CODE
CROSS-REFERENCE TO RELATED
APPLICATION
This application draws priority from U.S. Provisional
PatentApplicationNo. 61/200,931, filedon Dec.4, 2008, and
hereby incorporated by reference herein in its entirety.
FIELD OF THE INVENTION
Embodiments oftheinvention maygenerally relatetopro
gramminglanguagecodetranslation and more specifically to
translation of Connected Limited Device Configuration
(CLDC) programming language code.
BACKGROUND OF THE INVENTION
Various users across the globe communicate or perform
various activities on computer and device networks. More
over, the users interactwitheach otherthrough the networks,
Such as the Internet. Typically, the users use devices like
personalcomputerstointeractovertheInternet.Theuserscan
interact from various Internet websites or social networking
sites, for example, Facebook, Myspace. Hi5, and Orkut etc.
Recently, the development in mobile devices such as cell
phones, Smartphones and PDAs, computers, laptops and the
like has enabled them to be used for performing various
activities on networks such as the Internet. Moreover, the
mobile devices can be used for real-time interaction with
otherusers onthe network. The interactionorcommunication
can be in the form of chatting, playing interactive online
games, browsing, shopping, music, video, banking, business
and the like.
The rapid pace ofinnovation in technology has generated
varioustypesofdevicesandplatforms.Moreover,thenumber
ofdevices is increasing rapidly. For example, there are vari
ous operating systems available forthe devices Such as Win
dows, Linux,Macintosh,andSymbian,etc. Moreover,alarge
number of J2ME platforms are available for the mobile
devices suchascellphones. Furthermore, the mobiledevices
haveawiderageofcapabilities intermsofscreen size,Screen
type, screen resolution, processor, and memory etc. The
applications forthese devices have to be developed basedon
theirplatforms. Therefore, each application has to be ported
to other platforms. For example, in case ofcomputer games
the programming languages typically used are JAVA, CH,
C++. Action Script, and the like. Therefore, an application
developedinAction Scriptprogramming language may have
to be ported to other programming language when not Sup
ported by a device platform. Further, new applications are
beingcontinuously developed for different deviceplatforms.
Typically,theprogrammingcodeofanapplication istrans
lated manually from one programming language to another.
However, manual translation requires specific and in-depth
knowledge of the programming languages of the different
operating systems. Moreover, manual translation is a very
timeconsumingprocess. Furthermore,theprogramming lan
guages are constantly developed orget modified. Moreover,
the applications have to be developed on specific develop
ment platforms compatible with the programming language
used for development and the operating system ofa device.
Asa result,acompleted revision oftheapplication code may
be required to make the interaction possible. Some mecha
nisms, such as emulation of applications, are available to
Support multiple devices. However, the existing mechanisms
generate application program codes that are large or require
10
15
25
30
35
40
45
50
55
60
65
2
heavy processingtime. Theproblem is compoundedwith the
continuously increasing number of device platforms and
technology.
Various media applications on devices Such as mobile
phones are developedusing the CLDC. CLDC is a specifica
tion ofa framework forJavaTM Micro Edition (ME). JAVATM
ME applications are targeted at devices that have limited
resources. Examples ofSuch devices include mobile phones.
Generally, the configuration of devices. Such as mobile
phones, may vary by devicetype, capabilities, operating sys
tem, qualities, characteristics, electronics, communications,
mediacapabilitiesandsoforth. Moreover, nativeapplications
aretypically pre-installed in the devices, cannotbe removed,
and are ready to run. Some of the applications are always
running while others are started by the user via the menu.
Users are able to further customize their mobile devices by
loading additional applications (e.g., instant messaging,
games, etc.) onto these devices.
Porting or translation ofthese applications to new or dif
ferent devices generally requires manual porting for each
specific device. However, the process of manual porting is
difficult and slow. Moreover, the manual process is not effi
cient with the rapid development pace ofnew devices, plat
forms and capabilities.
A mechanism is therefore desirable to translate the CLDC
programming language code of an application into a target
programminglanguagecodebasedontargetdeviceplatform.
SUMMARY
Various embodiments of the invention may provide a
method for converting a source application to a platform
independent application.The method may comprise translat
ing source programming language code ofthe source appli
cation to targetprogramminglanguage code ofthe platform
independent application, wherein the source programming
language code may comprise Connected Limited Device
Configurationcode,andwherein thetargetprogramminglan
guage is independent ofone or more device platforms. Fur
ther,the method may compriseconvertingoneormoresource
resources associated with the source application to one or
more target resources.
Embodiments of the invention may further provide an
apparatus for converting a source application to a platform
independent application.Theapparatus maycomprisea code
transformerconfigured to translate Sourceprogramming lan
guage code ofthe Source application to target programming
language code of the platform-independent application,
wherein the source programming language code may com
prise Connected Limited Device Configuration code, and
wherein the platform-independent programming language is
independent ofone or more deviceplatforms; and a resource
converterconfiguredto convertone or more source resources
associated with the Source application to one or more target
SOUCS.
Someembodiments ofthe invention may furtherprovidea
system for converting a source application to a platform
independent application. The system may comprise means
for translating Source programming language code of the
Source application to target programming language code of
the platform-independent application, wherein the Source
programming language code may comprise Connected Lim
ited Device Configuration code, and wherein the platform
independent programminglanguage is independentofone or
moredeviceplatforms;and meansforconvertingoneormore
SourceresourcesassociatedwiththeSourceapplicationtoone
or more target resources.
US 8,762,963 B2
3
Someembodiments ofthe invention may furtherprovidea
computer-readable medium having computer-executable
instructions forperforming a method forconverting a source
application to a platform-independent application. The
method may comprise translating source programming lan- 5
guage code ofthe source application to target programming
language code of the platform-independent application,
wherein the source programming language code may com
prise Connected Limited Device Configuration code, and,
wherein theplatform-independentprogramming language is 10
independentofone or moredeviceplatforms; andconverting
one or more source resources associated with the Source
application to one or more target resources.
BRIEF DESCRIPTION OF THE DRAWINGS 15
Having thus described the invention in general terms, ref
erence will now be made to the accompanying drawings,
which are not necessarily drawn to scale, and wherein:
FIG. 1 illustrates an environment where various embodi- 20
ments ofthe invention may function;
FIG. 2 is a functional overview forextending thefunction
ality ofa platform-independent application, according to an
embodiment ofthe invention;
FIG. 3 is a block diagram illustrating components of a 25
Source application and a platform-independent application,
according to an embodiment ofthe invention;
FIG. 4 is the functional overview ofa translatoraccording
to an embodiment ofthe invention;
FIG. 5 is the functional Overview of a DOM constructor 30
according to an embodiment ofthe invention;
FIG. 6 is the block diagram for the translation of source
codeto targetcodeusingenvironment DOM,according toan
embodiment ofthe invention; and
FIG. 7 is a flowchart illustrating the translation ofCLDC 35
Source according to an embodiment ofthe invention.
DETAILED DESCRIPTION OF EMBODIMENTS
OF THE INVENTION
40
Illustrative embodiments of the technology now will be
describedmorefully hereinafterwith reference to theaccom
panyingdrawings,in whichsome,butnotallembodiments of
the technology are shown. Indeed, the technology may be
embodied in many different forms and should not be con- 45
struedas limited to the embodiments set forth herein; rather,
these embodiments are provided so that this disclosure will
satisfy applicable legal requirements. Like numbers refer to
like elements throughout.
FIG. 1 illustrates an environment where various embodi- 50
ments ofthe invention function. As shown in FIG.1, devices
108a, 108b, 108C and 108m can be, but are not limited to,
mobile devices such as a cellularphone, a PDAand a smart
phone, a laptop, a personal computer and the like. Devices
108a-n are capableofexecuting various applications. More- 55
over, devices 108a-n can connect to other devices over a
network, wiredorwireless. Further, devices 108a-n can have
differenthardwareand softwareplatforms. Examples ofplat
forms include WindowsTM, Linux, Macintosh, Symbian, and
so forth. Differentplatforms may support different program- 60
minglanguages. Moreover,devices108a-incanhavedifferent
hardware, such as the screen size, Screen resolution, audio
and video functionality, processors and so forth. Therefore,
theapplications foreachoftheseplatforms maybedeveloped
in various programming languages compatible with the plat- 65
forms of devices 108a-in. For example, C++ programming
language is generally used by WindowsTM platform.
4
As shown in FIG. 1, a source application 102 comprises
programminglanguage source codeandresources for Source
application 102 to execute on devices 108a-n. Source appli
cation 102 is hereinafter referred to as source 102. Examples
of applications include a game, a message, a calendar, an
address book, a notepad, a user interface and/or other appli
cations. Source 102 may comprise Connected Limited
Device Configuration (CLDC) code. CLDC is a subset of
JAVATMprogramming languageclass libraries.The subset of
class librariesprovidestheminimumamountoffunctionality
required for operating a JavaTM Virtual Machine (JVM) on
devices 108a-n. Specifically, CLDC is a specification of a
framework for JavaTM Micro Edition (ME) applications that
aretargetedatdeviceswith verylimitedresourcessuchas,but
notlimitedto,pagersandmobilephones.As discussedabove,
devices 108a-n can vary based on device types, capabilities,
OS, qualities, characteristics, electronics, communications,
and/or media capabilities. Therefore, porting ofapplications
developed with CLDC code to new devices may require
manualporting foreachspecificdevice,andthisprocess may
not be efficient.
Translator 104 may translate source 102 to a platform
independent application that can be easily ported to devices
108a-n based on theirplatforms. The functional overview of
an embodiment oftranslator 104 is furtherexplained in con
junction with FIGS. 3 and 4. The code and resources ofthe
platform-independentapplication can then be used by appli
cation development framework 106 for rapid platform inde
pendent application development, without the need for an
application developer to each know platform. Application
development framework 106 may provide a framework for
developing applications fordevices 108 across multipleplat
forms.Therefore,theapplicationdevelopedusingapplication
development framework 106 may only need to be pro
grammed once and can be used on various platforms of
devices 108a-n. In an embodiment ofthe invention, applica
tion development framework 106 provides cross-translation
ofprogramming languages for various platforms. In another
embodiment of the invention, application development
framework 106 may enable applications to be developed
based on platform specific requirement and platform inde
pendent requirements. Therefore, the complexity ofthe pro
gramming codeand development time can be reduced. In an
embodiment of the invention, application development
framework 106providesApplication Programming Interface
(API) fordevelopment ofapplications.
Applicationdevelopmentframework106mayalso include
a mapping system between a logical asset and a real asset,
which may allow the cross platform use ofan asset inside a
generic code. Therefore, two different platforms that share
thesamescreenfamily/resolutions maybeableto useexactly
thesameassets.Asaresult,theapplication maylookidentical
onplatforms ofdevices 108a-n, unless an application devel
operwishestocustomizethelookoragraphicaluserinterface
fora specific platform. Therefore, a content interface may be
configured to provide an application programming interface
for developing an application. An application environment
may be configured to handle requests from the application
and one or more plug-in interfaces may be configured to
provide interface between the application environment and
the one or more plug-ins. Exemplary architecture and func
tionality ofapplication development framework 106 is dis
cussed in U.S. patent application Ser. No. 12/483,598, filed
on Jun. 12, 2009, which is incorporated herein by reference.
FIG. 2 isa functional overview forextending functionality
ofa platform-independent application 204, according to an
embodimentofthe invention. Platform-independentapplica
US 8,762,963 B2
5
tion204ishereinafterreferredtoas targetapplication204.As
shown in FIG. 2, translator 104 generates target application
204 from source 102. In an embodiment ofthe invention, in
casecertainplatform functionalityoftargetapplication 204is
notsupportedbyapplication developmentframework106,as
shown in FIG. 2,an emulator202 may be usedto emulatethe
functionality.
Target application 204 may comprise various elements
Suchas, but notlimitedto,graphics, input, networking, tools,
andfiles. Emulator202 mayemulateelementsoftargetappli
cation 204 converted from source 102 by translator 104. For
example, the networking requirements ofSource 102 can be
directly mapped to networking functionality oftarget appli
cation 204. In an embodimentofthe invention,emulator202
isamoduleinapplicationdevelopment framework 106and is
implantedasa layer.Therefore, thecomplete functionality of
source 102canbepresented on devices 108a-n with different
platforms. In an embodiment ofthe invention, emulator202
can bereusedforeach different source 102application. Emu
lator 202 may act as a bridge between source 102 calls and
application development framework 106 calls. Therefore,
platform-independent application 204 can be used by appli
cation development framework 106 without losing the func
tionality, look and feel ofthe application.
FIG.3 isablockdiagramillustratingcomponentsofsource
application 102 and target application 204, according to an
embodiment ofthe invention. As discussed with reference to
FIG. 1, translator 104 converts source 102 to target applica
tion204.Thereafter,the targetapplication 204canbeusedby
application development framework 106 for compatibility
and execution on devices 108a-n.
Source 102 may comprise source programming language
code 302a, source resources 302b, and configuration 302c.
Source programming language code 302a is hereinafter
referred to as source code302a. The programming language
forsourcecode302acanbe,forexample,butis notlimitedto,
JAVATMprogramminglanguage. Source resources 302b may
comprise various resources that can be used by source 102.
forexample,butnotlimitedto,images,Sounds, videos,andso
forth. Configuration 302c comprises the configuration data
for source 102. Configuration 302c may include data that
define the settings and configuration of source 102. For
example, in caseofan onlineapplication, configuration 302c
can be connection string, refresh times and so forth.
Targetapplication 204 may generallycomprisetargetcode
206a and target resources 206b. Target application 204 is
compatible with application development framework 106,
which may, in turn,translateitto platform specific source for
devices 108a-n. Theoperational overview ofan embodiment
of the translation ofsource 102 to target application 204 is
explained in detail in conjunction with FIG. 4.
FIG.4 istheoperationaloverviewoftranslator104accord
ing to an embodiment ofthe invention. As shown in FIG. 4.
translator 104 comprises a resource converter 402, a code
transformer404, and a configuration module 412.
Accordingtotheembodiment shownin FIG.4,code trans
former 404 converts source code 302a to target code 206a.
Code transformer 404 may comprise a Document Object
Model (DOM) constructor 406, an environment DOM con
structor 408, and an emitter 410. Resource converter402, as
shown in FIG. 4, converts source resources 302b to target
resources 206b oftarget application 204. In an embodiment
of the invention, target resources 206b are maintained in a
single lossless format. For example, images may be main
tainedin a PNG format.Theimagesinresources 302bmaybe
transformed to a single standard format, such as PNG format
irrespective ofthe original format.
10
15
25
30
35
40
45
50
55
60
65
6
DOM constructor 406 generates a Document Object
Model (DOM) forthe source code 302a. A DOM is a hierar
chical representation ofthe fundamental language construct
relationships. DOMconstructor406 uses,forexample, in the
case in which the source code 302a comprises CLDC code,
CLDC semantics forsyntactic analysis ofsource code302a.
CLDC semantics include grammar rules for generation of
DOM. In an embodiment ofthe invention, DOM constructor
406 functions recursively to generate the DOM. An exem
plary functional overview of DOM constructor 406 is
explained in conjunction with FIG. 5. In an embodiment of
the invention, source code 302a includes various files of
information and code, such as text. Environment DOM con
structor 408 generates a collection of DOM for the files in
source code 302a. The collection of DOM is hereinafter
referred to as the environment DOM.
Emitter410 may then transform the environment DOM to
target code 206a. Theformatoftargetcode 206a may be, for
example, a text format. Target code 206a is independent of
platforms ofdevices 108a-n. In an embodiment ofthe inven
tion, emitter410 transforms the environment DOM by using
a depth first search algorithm; however, the invention is not
thus limited. Targetcode 206a and target resources 206b are
usedbyapplicationdevelopmentframework106toautomati
cally generate native application code for devices 108a-n.
Further, a configuration module 412 may provide configura
tion 302c to target application 204. Configuration 302c may
comprise various configurations ofSource 102 that are used
by target application 204.
FIG. 5 is an exemplary functional overview ofDOM con
structor406according to anembodimentofthe invention. In
an embodiment of the invention, the DOM is generated by
processing source code 302a. For example, consider an
expression in the sourcecode302a given by: Sum=2+3:. A
stream ofcharacters comprising the characters 'S', 'u', 'm',
= 2, +, 3, and ; is generated from source code 302a.
Thereafter, the stream ofcharacters is analyzed lexically to
generatealistoftokens502. Examplesofthecharacters inthe
input stream include alphabetical characters, numerals, spe
cial characters, mathematical operators, their combinations,
and so forth. In an embodiment ofthe invention, the charac
ters are processedsequentially to generate list oftokens 502.
DOM constructor406 may use regularexpression rules and/
orCLDC semantics to generate the list oftokens 502. In an
embodiment ofthe invention, regularexpression rules and/or
CLDC semantics represent patternsthat may be contained in
text of source code 302a. Example definitions of various
types ofregular expressions may be:
Identifier: is a sequence ofletters a-Zor
Assignment operator: is the character =
Addition operator: is the character +
Semicolon: is the character :
Number: is a sequence ofcharacters 0-9
In Such an exemplary embodiment, every time a regular
expression rule is completed, a new token is added to list of
tokens 502. In an embodiment of the invention, DOM con
structor 406 is a lexical analyzer.
In an embodiment of the invention, list of tokens 502
comprises columns of token list 504a and token type list
504b. Token list 504a comprises the tokens generated from
stream of characters of source code 302a. Token type list
504b comprises the descriptions for the types of tokens.
Tokens in list of tokens 502 may be categorized based on
blocks of text that may be obtained from portions of the
sourcecode. Referringto listoftokens 502, the token Sum
in tokens 504a is defined as an identifier in type list 504b.
Similarly,thecompleteprogrammingcodeoftheSourcecode
US 8,762,963 B2
7
302a programming language can be processed to form a list
of tokens. Subsequently, list oftokens 502 is processed by
DOM constructor 406 to generate Document Object Model
(DOM) 506.
DOM 506 is a grammatical data structure and defines the
relationships among the tokens in list oftokens 502. DOM
constructor 406 analyzes syntactically list of tokens 502 to
generate DOM506. Inanembodimentoftheinvention,DOM
506generates DOM506based on grammar rules defined for
Syntactic analysis. Exemplary rules may include:
Assignment Statement<-Identifier-Expression;
Expressions-Literal OR Binary Expression;
Binary Expressione-Expression Operator Expression; and/
O
Literale-Number OR Identifier.
The arrows in the above rules indicate the direction ofthe
pattern matching reduction. Therefore, based on the above
example, a statement Such as Sum=2+3 is termed as an
assignmentstatement.Similarly,basedontheaboverules,the
statement 2+3 is termed as a Binary Expression.
In an embodimentofthe invention, the grammarrules can
be recursive. Therefore, one or more rules may be applied
recursively to prepare DOM506. As shown in FIG. 5, DOM
506comprises nodes 508a–f Nodes 508a-frepresents ahier
archical data structure ofsource code 302a. Forexample, in
FIG. 5, node 508c represents a binary expression, and nodes
508d, 508e, and 508fcomprise numbers and an operator,
which are subsets of the binary expression of node 508c.
Similarly, various document object models can be con
structedbased on the files, text orcodes in source code302a.
As discussed above, the collection of DOM 506 is used by
environment DOM constructor 408 to generate the environ
ment DOM. The conversion ofsource code 302a to environ
ment DOMandsubsequentlyto targetcode202aisexplained
in conjunction with FIG. 6.
FIG. 6is a blockdiagram forthe translation ofsourcecode
302a totargetcode206a usingenvironmentDOM,according
to an embodiment ofthe invention. Source code 302a may
comprise various input files containing programming lan
guagecode. As described in FIGS. 4and 5, theinput files are
processed by DOM constructor 406 and environment DOM
constructor408 to generate environment DOM 602.
EnvironmentDOM 602comprises multipleDOMs506a-n
corresponding to the inputfiles. The files DOMs 506a-n may
be cross-referenced to generate a more accurate final struc
ture referred to as environment DOM 602.
Environment DOM 602 is analyzed by emitter410 to gen
erateoutputfilesoftargetcode206a. Inanembodimentofthe
invention, the output files correspond to the DOM 608a-n.
Targetcode206a maycomprise,forexample,atextformat. In
an embodiment ofthe invention, target code 206a includes
code in object oriented programming languages such as, but
not limited to, C++, C#, Java, AS3, and the like.
FIG. 7 is a flowchart illustrating the translation ofsource
102accordingtoanembodimentoftheinvention.Atstep 702,
one or more characters of source code 302a are analyzed
lexically to generate a list of tokens. Thereafter, the list of
tokens is analyzed syntactically to generate a document
object model, at step 704. As discussed above, DOM con
structor 406 may be used to analyze source code 302a lexi
cally and to generate the document object model.
Subsequently,at step706, documentobject models maybe
generated for multiple files in source code 302a and may be
collected to generate an environment DOM by environment
DOM constructor 408. The DOMs may be cross-referenced
by environment DOM constructor 408 to generate a more
accurate final structure referred to as environment DOM.
10
15
25
30
35
40
45
50
55
60
65
8
At step 708, the environment DOM may be analyzed by
emitter410togeneratetargetcode 206a oftargetapplication
204. Resources 302b ofsource 102 may be transformed by
resource converter 402 to generate target resources 206b of
target application 204. In an embodiment of the invention,
target application 204 can be used by application develop
ment framework 106 to generate platform specific applica
tions for devices 108a-n.
Embodiments of the invention are described above with
reference to block diagrams and Schematic illustrations of
methodsandsystemsaccordingtoembodimentsoftheinven
tion. Itwillbeunderstoodthateach blockofthediagramsand
combinations ofblocks in the diagrams can be implemented
by computerprogram instructions. These computerprogram
instructions maybe loadedonto oneormoregeneralpurpose
computers, special purpose computers, or other program
mable data processing apparatus or computing devices to
produce machines, such that the instructions which execute
on the computers or other programmable data processing
apparatus create meansforimplementingthefunctionsspeci
fied in the block orblocks. Such computerprogram instruc
tions may also be stored in a computer-readable medium,
Suchasa memory,thatcan directacomputing deviceorother
programmable data processing apparatus to function in a
particular manner. Such that the instructions stored in the
computer-readable medium produce an article of manufac
tureincluding instruction means that implement the function
specified in theblockorblocks. Furthermore, such computer
program instructions may be provided for download via a
network and/or may be downloaded via a network.
While the invention has been described in connection with
what is presently considered to be the most practical and
variousembodiments,itis to be understood thattheinvention
is not to be limited to the disclosed embodiments, but on the
contrary, is intended to cover various modifications and
equivalentarrangements included within the spiritand scope
ofthe appended claims.
This written description uses examples to disclose the
invention, including the best mode, and also to enable any
person skilled in the art to practice the invention, including
makingand usingany devices orsystemsandperformingany
incorporated methods. The patentable scope the invention is
defined in the claims, and may include other examples that
occur to those skilled in the art. Such other examples are
intended to be within the scope of the claims if they have
structuralelements thatdo notdifferfrom theliterallanguage
oftheclaims, orifthey includeequivalentstructuralelements
with insubstantial differences from the literal languages of
the claims.
We claim:
1. A method for converting a source application to a plat
form-independent application, the method comprising:
translating source programming language code of the
Sourceapplicationtotargetprogramminglanguagecode
of the platform-independent application, wherein the
Source programming language code comprises Con
nectedLimited DeviceConfiguration (CLDC)code,and
wherein the target programming language code is in a
platform-independent programming language that is
independent ofone or more device platforms;
converting one or more source resources associated with
and configured to be used by the Source application to
one or more target resources configured for use by the
platform-independent application, wherein the Source
resources are not included within the Source program
ming language code ofthe Source application and the
US 8,762,963 B2
target resources are not included within the target pro
gramming language code ofthe platform-independent
application; and
providing a configuration ofthe source application to the
platform-independentapplication, wherein the configu
rationincludesdatadefiningsettings ofthesourceappli
cation;
wherein the translating is implemented by a first series of
steps:
wherein the converting is implemented by a second series
ofsteps; and
wherein the first series of steps are different from, and
independent from, the second series ofsteps.
2. The method of claim 1, wherein the translating the
Source programming language code comprises:
tokenizingoneormorecharactersofoneormoreinputfiles
ofthe Source programming language codeto generate a
list oftokens;
parsingthelistoftokenstogenerateoneormoredocument
object models;
generating an environment document object model com
prising the one or more document object models,
wherein the one or more inputfiles arecross-referenced
within the one or more document object models ofthe
environment document object model; and
analyzing theenvironmentdocument object model togen
erate one or more characters ofone or more output files
ofthe target programming language code.
3. The method ofclaim 2, wherein theanalyzing the envi
ronmentdocumentobjectmodelcomprisesusingadepth first
search algorithm.
4. The method ofclaim 1, wherein the one or more target
resources comprise one or more platform-independent
SOUCS.
5. The method ofclaim 1, wherein the one or more target
resources comprise one or more ofan image, an audio, or a
video.
6.The methodofclaim 1,whereinthesourceprogramming
language and the platform-independent programming lan
guage are object oriented programming languages.
7. The methodofclaim 1, furthercomprisingdownloading
computer-executable instructions that, ifexecuted by a com
puting device, cause the computing device to execute said
translating.
8. The methodofclaim 1, furthercomprisingdownloading
computer-executable instructions that, ifexecuted by a com
puting device, cause the computing device to execute said
converting.
9.Themethodofclaim 1, furthercomprisingmakingavail
able for downloading computer-executable instructions that,
if executed by a computing device, cause the computing
device to execute said translating.
10. The method of claim 1, further comprising making
available for downloading computer-executable instructions
that, ifexecuted by a computingdevice, causethecomputing
device to execute said converting.
11. A system forconvertinga sourceapplication to a plat
form-independent application, the system comprising:
at least one computing device; and
at least one memory device coupled to the at least one
computing device, wherein the at least one memory
device contains executableinstructions that, ifexecuted
ontheatleastonecomputing device,resultintheimple
mentation ofoperations comprising:
translating source programming language code of the
Sourceapplicationtotargetprogramming language code
of the platform-independent application, wherein the
10
15
25
30
35
40
45
50
55
60
65
10
Source programming language code comprises Con
nectedLimited DeviceConfiguration (CLDC)code,and
wherein the target programming language code ofthe
platform-independentapplication is in aplatform-inde
pendent programming language that is independent of
one or more device platforms;
converting one or more source resources associated with
and configured to be used by the Source application to
oneormoretargetresourcesconfiguredtobeusedbythe
platform-independent application, wherein the Source
resources are not included within the Source program
ming language code ofthe Source application and the
target resources are not included within the target pro
gramming language code ofthe platform-independent
application; and
providing a configuration ofthe source application to the
platform-independentapplication, wherein theconfigu
rationincludesdatadefiningsettingsoftheSourceappli
cation;
wherein the translating is implemented by a first series of
steps:
wherein the converting is implemented by a second series
ofsteps; and
wherein the first series ofsteps for the translating are dif
ferent from, and independent from, the second series of
steps for the converting.
12.Thesystem ofclaim 11, wherein theoneor more target
resources comprise one or more ofan image, an audio, or a
video.
13. The system ofclaim 11, wherein the source and the
platform-independentprogramminglanguagesareobjectori
ented programming languages.
14.Thesystem ofclaim 11, wherein theoneor more target
resources comprise one or more platform-independent
SOUCS.
15.Thesystem ofclaim 11, wherein translatingthe source
programming language code comprises:
tokenizingoneormorecharactersofoneormoreinputfiles
ofthe source programming language codeto generatea
list oftokens;
parsingthelistoftokenstogenerateoneormoredocument
object models;
generating an environment document object model com
prising the one or more document object models,
wherein the one or more inputfiles arecross-referenced
within the one or more document object models ofthe
environment document object model; and
analyzing theenvironmentdocument object model togen
erate one or more characters ofone or more output files
ofthe target programming language code.
16. The system ofclaim 15, wherein analyzing the envi
ronmentdocumentobjectmodelcomprisesusingadepth first
search algorithm.
17. A non-transitory computer-readable medium having
computer-executable instructions that, ifexecuted by a com
puting device, cause the computing device to implement
operations comprising:
translatingSourceprogramming languagecodeofasource
application to target programming language code of a
platform-independent application, wherein the Source
programming language code comprises Connected
Limited Device Configuration (CLDC) code, and
wherein the target programming language code ofthe
platform-independentapplication is in aplatform-inde
pendent programming language that is independent of
one or more device platforms;
US 8,762,963 B2
11
converting one or more source resources associated with
and configured to be used by the source application to
oneormoretargetresourcesconfiguredtobeusedbythe
platform-independent application, wherein the Source
resources are not included within the Source program
ming language code ofthe source application and the
target resources are not included within, the target pro
gramming language code ofthe platform-independent
application; and
providing a configuration ofthe source application to the
platform-independentapplication, wherein the configu
rationincludesdatadefiningsettings ofthesourceappli
cation;
wherein the translating is implemented by a first series of
steps:
wherein the converting is implemented by a second series
ofsteps; and
wherein the first series ofsteps for the translating are dif
ferent from, and independent from, the second series of
steps for the converting.
18. The medium ofclaim 17, wherein the translating the
Source programming language code comprises:
tokenizingoneormorecharactersofoneormoreinputfiles
ofthe Source programming language codeto generate a
list oftokens;
10
15
12
parsingthelistoftokenstogenerateoneormoredocument
object models;
generating an environment document object model com
prising the one or more document object models,
wherein the one or more inputfiles arecross-referenced
within the one or more document object models ofthe
environment document object model; and
analyzing theenvironmentdocument object model togen
erate one or more characters ofone or more output files
ofthe target programming language code.
19. The medium ofclaim 18, wherein the analyzing the
environmentdocumentobject model comprises usingadepth
first search algorithm.
20. The medium ofclaim 17, wherein the source and the
platform-independentprogramminglanguagesareobjectori
ented programming languages.
21. The method of claim 1, wherein the configuration
includes one or moreofa connection string ora refreshtime.
22. The system of claim 11, wherein the configuration
includes one or moreofa connection string ora refreshtime.
23. The medium of claim 17, wherein the configuration
includes one or moreofa connection string ora refreshtime.
k k k k k

More Related Content

Similar to Translation of Programming Code from CLDC to Platform-Independent Code

EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18Xiaoli Liang
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuTal Lavian Ph.D.
 
Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Tal Lavian Ph.D.
 
Us8429046 system and methods for servicing electronic transactions
Us8429046 system and methods for servicing electronic transactionsUs8429046 system and methods for servicing electronic transactions
Us8429046 system and methods for servicing electronic transactionssatyanpitroda
 
US20030139919
US20030139919US20030139919
US20030139919Oleg Sher
 
survey_of_matrix_for_simulation
survey_of_matrix_for_simulationsurvey_of_matrix_for_simulation
survey_of_matrix_for_simulationJon Hand
 
The Ring programming language version 1.9 book - Part 22 of 210
The Ring programming language version 1.9 book - Part 22 of 210The Ring programming language version 1.9 book - Part 22 of 210
The Ring programming language version 1.9 book - Part 22 of 210Mahmoud Samir Fayed
 
Accessible computer interface for a cnc machining center
Accessible computer interface for a cnc machining centerAccessible computer interface for a cnc machining center
Accessible computer interface for a cnc machining centerJupira Silva
 
The Ring programming language version 1.5.2 book - Part 15 of 181
The Ring programming language version 1.5.2 book - Part 15 of 181The Ring programming language version 1.5.2 book - Part 15 of 181
The Ring programming language version 1.5.2 book - Part 15 of 181Mahmoud Samir Fayed
 
Optimizing network connections
Optimizing network connectionsOptimizing network connections
Optimizing network connectionsTal Lavian Ph.D.
 
Ticket window & automation system
Ticket window & automation systemTicket window & automation system
Ticket window & automation systemUpendra Sengar
 
Systems and methods for electronic communications
Systems and methods for electronic communicationsSystems and methods for electronic communications
Systems and methods for electronic communicationsTal Lavian Ph.D.
 
The H.264/AVC Advanced Video Coding Standard: Overview and ...
The H.264/AVC Advanced Video Coding Standard: Overview and ...The H.264/AVC Advanced Video Coding Standard: Overview and ...
The H.264/AVC Advanced Video Coding Standard: Overview and ...Videoguy
 
Coding guideline
Coding guidelineCoding guideline
Coding guidelineVu Nguyen
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
 

Similar to Translation of Programming Code from CLDC to Platform-Independent Code (20)

EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menu
 
Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...Method and apparatus for dynamically loading and managing software services o...
Method and apparatus for dynamically loading and managing software services o...
 
Us8429046 system and methods for servicing electronic transactions
Us8429046 system and methods for servicing electronic transactionsUs8429046 system and methods for servicing electronic transactions
Us8429046 system and methods for servicing electronic transactions
 
US20030139919
US20030139919US20030139919
US20030139919
 
survey_of_matrix_for_simulation
survey_of_matrix_for_simulationsurvey_of_matrix_for_simulation
survey_of_matrix_for_simulation
 
The Ring programming language version 1.9 book - Part 22 of 210
The Ring programming language version 1.9 book - Part 22 of 210The Ring programming language version 1.9 book - Part 22 of 210
The Ring programming language version 1.9 book - Part 22 of 210
 
Accessible computer interface for a cnc machining center
Accessible computer interface for a cnc machining centerAccessible computer interface for a cnc machining center
Accessible computer interface for a cnc machining center
 
Us8448146
Us8448146Us8448146
Us8448146
 
US20080313598
US20080313598US20080313598
US20080313598
 
How to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android StudioHow to Build & Use OpenCL on Android Studio
How to Build & Use OpenCL on Android Studio
 
The Ring programming language version 1.5.2 book - Part 15 of 181
The Ring programming language version 1.5.2 book - Part 15 of 181The Ring programming language version 1.5.2 book - Part 15 of 181
The Ring programming language version 1.5.2 book - Part 15 of 181
 
Optimizing network connections
Optimizing network connectionsOptimizing network connections
Optimizing network connections
 
Ticket window & automation system
Ticket window & automation systemTicket window & automation system
Ticket window & automation system
 
Systems and methods for electronic communications
Systems and methods for electronic communicationsSystems and methods for electronic communications
Systems and methods for electronic communications
 
Hec geo ras42-usersmanual
Hec geo ras42-usersmanualHec geo ras42-usersmanual
Hec geo ras42-usersmanual
 
The H.264/AVC Advanced Video Coding Standard: Overview and ...
The H.264/AVC Advanced Video Coding Standard: Overview and ...The H.264/AVC Advanced Video Coding Standard: Overview and ...
The H.264/AVC Advanced Video Coding Standard: Overview and ...
 
Arjun CV_7 Aug 2015
Arjun CV_7 Aug 2015Arjun CV_7 Aug 2015
Arjun CV_7 Aug 2015
 
Coding guideline
Coding guidelineCoding guideline
Coding guideline
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
 

More from Tal Lavian Ph.D.

Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Photonic line sharing for high-speed routers
Photonic line sharing for high-speed routersPhotonic line sharing for high-speed routers
Photonic line sharing for high-speed routersTal Lavian Ph.D.
 
Systems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkSystems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkTal Lavian Ph.D.
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuTal Lavian Ph.D.
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resourcesTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Tal Lavian Ph.D.
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resourcesTal Lavian Ph.D.
 
Method and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkMethod and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkTal Lavian Ph.D.
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Tal Lavian Ph.D.
 
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Tal Lavian Ph.D.
 
Reliable rating system and method thereof
Reliable rating system and method thereofReliable rating system and method thereof
Reliable rating system and method thereofTal Lavian Ph.D.
 
Time variant rating system and method thereof
Time variant rating system and method thereofTime variant rating system and method thereof
Time variant rating system and method thereofTal Lavian Ph.D.
 
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuSystems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerTal Lavian Ph.D.
 
Systens and Methods For Electronic Communication
Systens and Methods For Electronic CommunicationSystens and Methods For Electronic Communication
Systens and Methods For Electronic CommunicationTal Lavian Ph.D.
 

More from Tal Lavian Ph.D. (20)

Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Photonic line sharing for high-speed routers
Photonic line sharing for high-speed routersPhotonic line sharing for high-speed routers
Photonic line sharing for high-speed routers
 
Systems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkSystems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a network
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menu
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Method and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkMethod and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay network
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...
 
Reliable rating system and method thereof
Reliable rating system and method thereofReliable rating system and method thereof
Reliable rating system and method thereof
 
Time variant rating system and method thereof
Time variant rating system and method thereofTime variant rating system and method thereof
Time variant rating system and method thereof
 
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuSystems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menu
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Systens and Methods For Electronic Communication
Systens and Methods For Electronic CommunicationSystens and Methods For Electronic Communication
Systens and Methods For Electronic Communication
 

Recently uploaded

Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝soniya singh
 
Presentation.pptxjnfoigneoifnvoeifnvklfnvf
Presentation.pptxjnfoigneoifnvoeifnvklfnvfPresentation.pptxjnfoigneoifnvoeifnvklfnvf
Presentation.pptxjnfoigneoifnvoeifnvklfnvfchapmanellie27
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一ga6c6bdl
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...nagunakhan
 
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一ga6c6bdl
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurSuhani Kapoor
 
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...Pooja Nehwal
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...nagunakhan
 
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一ga6c6bdl
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsPooja Nehwal
 
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gayasrsj9000
 
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberCall Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberMs Riya
 
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai GapedCall Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gapedkojalkojal131
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile servicerehmti665
 
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一zul5vf0pq
 
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...ur8mqw8e
 
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一ss ss
 

Recently uploaded (20)

Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Bhavna Call 7001035870 Meet With Nagpur Escorts
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
 
Presentation.pptxjnfoigneoifnvoeifnvklfnvf
Presentation.pptxjnfoigneoifnvoeifnvklfnvfPresentation.pptxjnfoigneoifnvoeifnvklfnvf
Presentation.pptxjnfoigneoifnvoeifnvklfnvf
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
 
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单留信学历认证原版一比一
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
 
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
 
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...
Kalyan callg Girls, { 07738631006 } || Call Girl In Kalyan Women Seeking Men ...
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
 
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一
如何办理萨省大学毕业证(UofS毕业证)成绩单留信学历认证原版一比一
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call Girls
 
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
 
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up NumberCall Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
Call Girls Delhi {Rs-10000 Laxmi Nagar] 9711199012 Whats Up Number
 
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai GapedCall Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
Call Girls Dubai Slut Wife O525547819 Call Girls Dubai Gaped
 
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile service
 
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
定制加拿大滑铁卢大学毕业证(Waterloo毕业证书)成绩单(文凭)原版一比一
 
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
 
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
定制(UI学位证)爱达荷大学毕业证成绩单原版一比一
 

Translation of Programming Code from CLDC to Platform-Independent Code

  • 1. USOO8762963B2 (12) United States Patent (10) Patent No.: US 8,762,963 B2 Shacham et al. (45) Date of Patent: Jun. 24, 2014 (54) TRANSLATION OF PROGRAMMING CODE 6,083,279 A * 7/2000 Cuomo et al. ................ 717.118 6,654,875 B1 * 1 1/2003 Hartnettet al. ... ... 712,211 6,775,814 B1* 8/2004 Jue et al. ........ ... 716, 106 (75) Inventors: ity Sly",El (US) 7,369,984 B2* 5/2008 Fairweather ...................... TO4/8 by Ben-Artzi. Palo Alto, CA (US); 7,921,432 B2* 4/2011 Tolguetal. ... T19,328 Alexei Alexevitch, Hertzlia (IL); 8,427.491 B2 * 4/2013 Keslin ............ ... 345,522 Amatzia Ben-Artzi, Palo Alto, CA 8443,348 B2 * 5/2013 McGuire et al. ... T17.146 (US); Tal Lavian, Sunnyvale, CA (US); 2003. O145011 A1* 7,2003 Su et al. ............. TO7/100 Alexander Glyakov, Petach Tikva (IL); 2004.?003997O A1* 2/2004 Barnard et al. ................. T14?43 Russell William McMahon, Woodside, (Continued) CA (US); Yehuda Levi, Rishon LeZion (IL) FOREIGN PATENT DOCUMENTS WO WO 2005069125 A2 * 7,2005 (73) Assignee: Beck Fund B.V. L.L.C., Dover, DE (US) WO WO 2009012398 A1 * 1,2009 (*) Notice: Subject to any disclaimer, the term ofthis patent is extended or adjusted under 35 OTHER PUBLICATIONS U.S.C. 154(b) by 660 days. Interface (computer Science)—Wikipedia, the free encyclopedia, (21) Appl. No.: 12/631,311 Dec. 3, 2008.* Programming language Wikipedia, Dec. 6, 2003.* (22) Filed: Dec. 4, 2009 (65) Prior Publication Data Primary Examiner — Don Wong US 2010/0146492 A1 Jun. 10, 2010 Assistant Examiner — Daxin Wu un. TU, (74) Attorney, Agent, or Firm —Novak Druce Connolly Related U.S. Application Data Bove + Quigg LLP (60) Provisional application No. 61/200,931, filed on Dec. 4, 2008. (57) ABSTRACT (51) Int. Cl. Embodiments ofthe invention may provide methods and/or G06F 9/44 (2006.01) systems for converting a source application to a platform (52) U.S. Cl. independent application. Source programming language USPC .......................................................... 717/137 code of the source application may be translated to target (58) Field ofClassification Search programming language code of the platform-independent USPC .......................................................... 717/137 application. The source programming language code may Seeapplication file forcomplete search history. compriseConnected Limited Device Configuration (CLDC) code, and the platform-independent programming language (56) References Cited maybeindependentofoneormoredeviceplatforms. Further, U.S. PATENT DOCUMENTS 5,664,061 A * 9/1997 Andreshak et al. ........... 704/275 5,768,564 A * 6/1998 Andrews et al. .............. 717/137 5.937,193 A * 8/1999 Evoy ............................. T17,140 one or more source resources associated with the Source application may beconvertedto oneormoretarget resources. 23 Claims, 7 Drawing Sheets Souiceapplication 102- 32 Source cois W - f Analyze exicay one ormore Transform one of more charactersof source code a sourceresourcestogeneratea list oftokens target resoirees 71 704- Analyze syntactically the list of takers to generateone or more document abject modeis 70s object rhosielstogetteratean envirginitent CM Process the are armore giocumenis 78 geheatetarget programmig iaiguagecoie Anayzethe enviroisier. O&Eto 2: W 382a y target Code Patfors-independeatApplication Target resources
  • 2. US 8,762.963 B2 Page 2 (56) References Cited 2008/0168421 A1* 7/2008 Meijeret al. .................. 717/106 2008/0216060 A1* 9/2008 Vargas ......... 717 137 U.S. PATENT DOCUMENTS 2009/0044203 A1* 2,2009 Acker et al. . T19,320 2009/0070338 A1* 3/2009 Spitzig et al. 707/10 2004/0237072 A1* 11/2004 Gelissen ....................... 717/139 2009/0172371 A1* 7/2009 Joao et al. ..................... T12/240 2005/0172263 A1* 8,2005 Hariharan et al. 717/109 2009,0172652 A1* 7,2009 Simon et all T17,148 2005/0229152 A1* 10,2005 Connell et al. ................ T17,104 2009/0216344 A1* 8,2009 Bretin ............................. TOO, 21 2006/0101430 A1* 5/2006 Hayashi ........................ 717/137 2010/017.9996 A1* 7,2010 Jones et al. TO9,206 2007/0067373 A1* 3/2007 Higgins et al. ........ 707?2O6 2010/0306784 A1* 12/2010 Cooney et al. T19.313 2008/0016170 A1* 1/2008 MacKelpranget al. 709/206 2011/0145591 A1* 6/2011 Grzybowski .................. T13,189 2008/0028384 A1 1/2008 Dornet al. ............ 717, 162 2008/O127170 A1* 5/2008 Goldman et al. ............. 717/174 * cited by examiner
  • 3. |eolaaq & 8 & & US 8,762.963 B2 90.V Sheet 1 of 7Jun. 24, 2014 || U.S. Patent
  • 4. US 8,762.963 B2Sheet 2 of 7Jun. 24, 2014U.S. Patent
  • 5. £(9423 US 8,762.963 B2 srarar 4^ Sheet 3 of 7 •; Jun. 24, 2014 $39,09&#43:24,29; ~~~~); U.S. Patent
  • 6. US 8,762.963 B2Sheet 4 of 7Jun. 24, 2014U.S. Patent -aa. T 4040ff33${105 |-~~~~··············· ~~~~);~~~~~~~~~~~~~*~~~~*~*~*~*******************~*~~~~~~~~~~~~); ******************-------------------------××××××××××××××××××××,r,r,r,,,,,,,?{~~~~~);
  • 7. US 8,762.963 B2Sheet 5 Of 7Jun. 24, 2014 wearearseries assasser sanawas sacraarea as asaasaas asas-as-arasaasa-a-a------------------------------------------ U.S. Patent –
  • 8. US 8,762.963 B2Sheet 6 of 7Jun. 24, 2014U.S. Patent - - - - - - - - - - - - - - - - - - - rrrr or x as a case - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - s - R s s 8 p~~~~~~~~~|L------~~~~);|-AugogL +--~~~~~--~~~~);{}
  • 9. U.S. Patent Jun. 24, 2014 Sheet 7 Of 7 US 8,762.963 B2 Solice appication 8&a 32 2N Sotice L- Soice Code Resources coccoon vy s: . 7. Analyze exicaily one or more | | Transform one ormore {&aces of SQ Ce Code to source resources to target esources saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. 70 Ajayze syntacticaiiy the list of R generate a iist of tokens tokens to generate one of ore docuse object Odeis y ---ce zos Process the one or more documents object rodes to generate a & visie C - w a. 38 Airaiyze the eavironet DOM to N generate target ogian rig iaiguage Code ----- Piation-independent Applicatio: 204 - N 3323 y — arget Code 332- RE esources
  • 10. US 8,762,963 B2 1. TRANSLATION OF PROGRAMMING CODE CROSS-REFERENCE TO RELATED APPLICATION This application draws priority from U.S. Provisional PatentApplicationNo. 61/200,931, filedon Dec.4, 2008, and hereby incorporated by reference herein in its entirety. FIELD OF THE INVENTION Embodiments oftheinvention maygenerally relatetopro gramminglanguagecodetranslation and more specifically to translation of Connected Limited Device Configuration (CLDC) programming language code. BACKGROUND OF THE INVENTION Various users across the globe communicate or perform various activities on computer and device networks. More over, the users interactwitheach otherthrough the networks, Such as the Internet. Typically, the users use devices like personalcomputerstointeractovertheInternet.Theuserscan interact from various Internet websites or social networking sites, for example, Facebook, Myspace. Hi5, and Orkut etc. Recently, the development in mobile devices such as cell phones, Smartphones and PDAs, computers, laptops and the like has enabled them to be used for performing various activities on networks such as the Internet. Moreover, the mobile devices can be used for real-time interaction with otherusers onthe network. The interactionorcommunication can be in the form of chatting, playing interactive online games, browsing, shopping, music, video, banking, business and the like. The rapid pace ofinnovation in technology has generated varioustypesofdevicesandplatforms.Moreover,thenumber ofdevices is increasing rapidly. For example, there are vari ous operating systems available forthe devices Such as Win dows, Linux,Macintosh,andSymbian,etc. Moreover,alarge number of J2ME platforms are available for the mobile devices suchascellphones. Furthermore, the mobiledevices haveawiderageofcapabilities intermsofscreen size,Screen type, screen resolution, processor, and memory etc. The applications forthese devices have to be developed basedon theirplatforms. Therefore, each application has to be ported to other platforms. For example, in case ofcomputer games the programming languages typically used are JAVA, CH, C++. Action Script, and the like. Therefore, an application developedinAction Scriptprogramming language may have to be ported to other programming language when not Sup ported by a device platform. Further, new applications are beingcontinuously developed for different deviceplatforms. Typically,theprogrammingcodeofanapplication istrans lated manually from one programming language to another. However, manual translation requires specific and in-depth knowledge of the programming languages of the different operating systems. Moreover, manual translation is a very timeconsumingprocess. Furthermore,theprogramming lan guages are constantly developed orget modified. Moreover, the applications have to be developed on specific develop ment platforms compatible with the programming language used for development and the operating system ofa device. Asa result,acompleted revision oftheapplication code may be required to make the interaction possible. Some mecha nisms, such as emulation of applications, are available to Support multiple devices. However, the existing mechanisms generate application program codes that are large or require 10 15 25 30 35 40 45 50 55 60 65 2 heavy processingtime. Theproblem is compoundedwith the continuously increasing number of device platforms and technology. Various media applications on devices Such as mobile phones are developedusing the CLDC. CLDC is a specifica tion ofa framework forJavaTM Micro Edition (ME). JAVATM ME applications are targeted at devices that have limited resources. Examples ofSuch devices include mobile phones. Generally, the configuration of devices. Such as mobile phones, may vary by devicetype, capabilities, operating sys tem, qualities, characteristics, electronics, communications, mediacapabilitiesandsoforth. Moreover, nativeapplications aretypically pre-installed in the devices, cannotbe removed, and are ready to run. Some of the applications are always running while others are started by the user via the menu. Users are able to further customize their mobile devices by loading additional applications (e.g., instant messaging, games, etc.) onto these devices. Porting or translation ofthese applications to new or dif ferent devices generally requires manual porting for each specific device. However, the process of manual porting is difficult and slow. Moreover, the manual process is not effi cient with the rapid development pace ofnew devices, plat forms and capabilities. A mechanism is therefore desirable to translate the CLDC programming language code of an application into a target programminglanguagecodebasedontargetdeviceplatform. SUMMARY Various embodiments of the invention may provide a method for converting a source application to a platform independent application.The method may comprise translat ing source programming language code ofthe source appli cation to targetprogramminglanguage code ofthe platform independent application, wherein the source programming language code may comprise Connected Limited Device Configurationcode,andwherein thetargetprogramminglan guage is independent ofone or more device platforms. Fur ther,the method may compriseconvertingoneormoresource resources associated with the source application to one or more target resources. Embodiments of the invention may further provide an apparatus for converting a source application to a platform independent application.Theapparatus maycomprisea code transformerconfigured to translate Sourceprogramming lan guage code ofthe Source application to target programming language code of the platform-independent application, wherein the source programming language code may com prise Connected Limited Device Configuration code, and wherein the platform-independent programming language is independent ofone or more deviceplatforms; and a resource converterconfiguredto convertone or more source resources associated with the Source application to one or more target SOUCS. Someembodiments ofthe invention may furtherprovidea system for converting a source application to a platform independent application. The system may comprise means for translating Source programming language code of the Source application to target programming language code of the platform-independent application, wherein the Source programming language code may comprise Connected Lim ited Device Configuration code, and wherein the platform independent programminglanguage is independentofone or moredeviceplatforms;and meansforconvertingoneormore SourceresourcesassociatedwiththeSourceapplicationtoone or more target resources.
  • 11. US 8,762,963 B2 3 Someembodiments ofthe invention may furtherprovidea computer-readable medium having computer-executable instructions forperforming a method forconverting a source application to a platform-independent application. The method may comprise translating source programming lan- 5 guage code ofthe source application to target programming language code of the platform-independent application, wherein the source programming language code may com prise Connected Limited Device Configuration code, and, wherein theplatform-independentprogramming language is 10 independentofone or moredeviceplatforms; andconverting one or more source resources associated with the Source application to one or more target resources. BRIEF DESCRIPTION OF THE DRAWINGS 15 Having thus described the invention in general terms, ref erence will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein: FIG. 1 illustrates an environment where various embodi- 20 ments ofthe invention may function; FIG. 2 is a functional overview forextending thefunction ality ofa platform-independent application, according to an embodiment ofthe invention; FIG. 3 is a block diagram illustrating components of a 25 Source application and a platform-independent application, according to an embodiment ofthe invention; FIG. 4 is the functional overview ofa translatoraccording to an embodiment ofthe invention; FIG. 5 is the functional Overview of a DOM constructor 30 according to an embodiment ofthe invention; FIG. 6 is the block diagram for the translation of source codeto targetcodeusingenvironment DOM,according toan embodiment ofthe invention; and FIG. 7 is a flowchart illustrating the translation ofCLDC 35 Source according to an embodiment ofthe invention. DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION 40 Illustrative embodiments of the technology now will be describedmorefully hereinafterwith reference to theaccom panyingdrawings,in whichsome,butnotallembodiments of the technology are shown. Indeed, the technology may be embodied in many different forms and should not be con- 45 struedas limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout. FIG. 1 illustrates an environment where various embodi- 50 ments ofthe invention function. As shown in FIG.1, devices 108a, 108b, 108C and 108m can be, but are not limited to, mobile devices such as a cellularphone, a PDAand a smart phone, a laptop, a personal computer and the like. Devices 108a-n are capableofexecuting various applications. More- 55 over, devices 108a-n can connect to other devices over a network, wiredorwireless. Further, devices 108a-n can have differenthardwareand softwareplatforms. Examples ofplat forms include WindowsTM, Linux, Macintosh, Symbian, and so forth. Differentplatforms may support different program- 60 minglanguages. Moreover,devices108a-incanhavedifferent hardware, such as the screen size, Screen resolution, audio and video functionality, processors and so forth. Therefore, theapplications foreachoftheseplatforms maybedeveloped in various programming languages compatible with the plat- 65 forms of devices 108a-in. For example, C++ programming language is generally used by WindowsTM platform. 4 As shown in FIG. 1, a source application 102 comprises programminglanguage source codeandresources for Source application 102 to execute on devices 108a-n. Source appli cation 102 is hereinafter referred to as source 102. Examples of applications include a game, a message, a calendar, an address book, a notepad, a user interface and/or other appli cations. Source 102 may comprise Connected Limited Device Configuration (CLDC) code. CLDC is a subset of JAVATMprogramming languageclass libraries.The subset of class librariesprovidestheminimumamountoffunctionality required for operating a JavaTM Virtual Machine (JVM) on devices 108a-n. Specifically, CLDC is a specification of a framework for JavaTM Micro Edition (ME) applications that aretargetedatdeviceswith verylimitedresourcessuchas,but notlimitedto,pagersandmobilephones.As discussedabove, devices 108a-n can vary based on device types, capabilities, OS, qualities, characteristics, electronics, communications, and/or media capabilities. Therefore, porting ofapplications developed with CLDC code to new devices may require manualporting foreachspecificdevice,andthisprocess may not be efficient. Translator 104 may translate source 102 to a platform independent application that can be easily ported to devices 108a-n based on theirplatforms. The functional overview of an embodiment oftranslator 104 is furtherexplained in con junction with FIGS. 3 and 4. The code and resources ofthe platform-independentapplication can then be used by appli cation development framework 106 for rapid platform inde pendent application development, without the need for an application developer to each know platform. Application development framework 106 may provide a framework for developing applications fordevices 108 across multipleplat forms.Therefore,theapplicationdevelopedusingapplication development framework 106 may only need to be pro grammed once and can be used on various platforms of devices 108a-n. In an embodiment ofthe invention, applica tion development framework 106 provides cross-translation ofprogramming languages for various platforms. In another embodiment of the invention, application development framework 106 may enable applications to be developed based on platform specific requirement and platform inde pendent requirements. Therefore, the complexity ofthe pro gramming codeand development time can be reduced. In an embodiment of the invention, application development framework 106providesApplication Programming Interface (API) fordevelopment ofapplications. Applicationdevelopmentframework106mayalso include a mapping system between a logical asset and a real asset, which may allow the cross platform use ofan asset inside a generic code. Therefore, two different platforms that share thesamescreenfamily/resolutions maybeableto useexactly thesameassets.Asaresult,theapplication maylookidentical onplatforms ofdevices 108a-n, unless an application devel operwishestocustomizethelookoragraphicaluserinterface fora specific platform. Therefore, a content interface may be configured to provide an application programming interface for developing an application. An application environment may be configured to handle requests from the application and one or more plug-in interfaces may be configured to provide interface between the application environment and the one or more plug-ins. Exemplary architecture and func tionality ofapplication development framework 106 is dis cussed in U.S. patent application Ser. No. 12/483,598, filed on Jun. 12, 2009, which is incorporated herein by reference. FIG. 2 isa functional overview forextending functionality ofa platform-independent application 204, according to an embodimentofthe invention. Platform-independentapplica
  • 12. US 8,762,963 B2 5 tion204ishereinafterreferredtoas targetapplication204.As shown in FIG. 2, translator 104 generates target application 204 from source 102. In an embodiment ofthe invention, in casecertainplatform functionalityoftargetapplication 204is notsupportedbyapplication developmentframework106,as shown in FIG. 2,an emulator202 may be usedto emulatethe functionality. Target application 204 may comprise various elements Suchas, but notlimitedto,graphics, input, networking, tools, andfiles. Emulator202 mayemulateelementsoftargetappli cation 204 converted from source 102 by translator 104. For example, the networking requirements ofSource 102 can be directly mapped to networking functionality oftarget appli cation 204. In an embodimentofthe invention,emulator202 isamoduleinapplicationdevelopment framework 106and is implantedasa layer.Therefore, thecomplete functionality of source 102canbepresented on devices 108a-n with different platforms. In an embodiment ofthe invention, emulator202 can bereusedforeach different source 102application. Emu lator 202 may act as a bridge between source 102 calls and application development framework 106 calls. Therefore, platform-independent application 204 can be used by appli cation development framework 106 without losing the func tionality, look and feel ofthe application. FIG.3 isablockdiagramillustratingcomponentsofsource application 102 and target application 204, according to an embodiment ofthe invention. As discussed with reference to FIG. 1, translator 104 converts source 102 to target applica tion204.Thereafter,the targetapplication 204canbeusedby application development framework 106 for compatibility and execution on devices 108a-n. Source 102 may comprise source programming language code 302a, source resources 302b, and configuration 302c. Source programming language code 302a is hereinafter referred to as source code302a. The programming language forsourcecode302acanbe,forexample,butis notlimitedto, JAVATMprogramminglanguage. Source resources 302b may comprise various resources that can be used by source 102. forexample,butnotlimitedto,images,Sounds, videos,andso forth. Configuration 302c comprises the configuration data for source 102. Configuration 302c may include data that define the settings and configuration of source 102. For example, in caseofan onlineapplication, configuration 302c can be connection string, refresh times and so forth. Targetapplication 204 may generallycomprisetargetcode 206a and target resources 206b. Target application 204 is compatible with application development framework 106, which may, in turn,translateitto platform specific source for devices 108a-n. Theoperational overview ofan embodiment of the translation ofsource 102 to target application 204 is explained in detail in conjunction with FIG. 4. FIG.4 istheoperationaloverviewoftranslator104accord ing to an embodiment ofthe invention. As shown in FIG. 4. translator 104 comprises a resource converter 402, a code transformer404, and a configuration module 412. Accordingtotheembodiment shownin FIG.4,code trans former 404 converts source code 302a to target code 206a. Code transformer 404 may comprise a Document Object Model (DOM) constructor 406, an environment DOM con structor 408, and an emitter 410. Resource converter402, as shown in FIG. 4, converts source resources 302b to target resources 206b oftarget application 204. In an embodiment of the invention, target resources 206b are maintained in a single lossless format. For example, images may be main tainedin a PNG format.Theimagesinresources 302bmaybe transformed to a single standard format, such as PNG format irrespective ofthe original format. 10 15 25 30 35 40 45 50 55 60 65 6 DOM constructor 406 generates a Document Object Model (DOM) forthe source code 302a. A DOM is a hierar chical representation ofthe fundamental language construct relationships. DOMconstructor406 uses,forexample, in the case in which the source code 302a comprises CLDC code, CLDC semantics forsyntactic analysis ofsource code302a. CLDC semantics include grammar rules for generation of DOM. In an embodiment ofthe invention, DOM constructor 406 functions recursively to generate the DOM. An exem plary functional overview of DOM constructor 406 is explained in conjunction with FIG. 5. In an embodiment of the invention, source code 302a includes various files of information and code, such as text. Environment DOM con structor 408 generates a collection of DOM for the files in source code 302a. The collection of DOM is hereinafter referred to as the environment DOM. Emitter410 may then transform the environment DOM to target code 206a. Theformatoftargetcode 206a may be, for example, a text format. Target code 206a is independent of platforms ofdevices 108a-n. In an embodiment ofthe inven tion, emitter410 transforms the environment DOM by using a depth first search algorithm; however, the invention is not thus limited. Targetcode 206a and target resources 206b are usedbyapplicationdevelopmentframework106toautomati cally generate native application code for devices 108a-n. Further, a configuration module 412 may provide configura tion 302c to target application 204. Configuration 302c may comprise various configurations ofSource 102 that are used by target application 204. FIG. 5 is an exemplary functional overview ofDOM con structor406according to anembodimentofthe invention. In an embodiment of the invention, the DOM is generated by processing source code 302a. For example, consider an expression in the sourcecode302a given by: Sum=2+3:. A stream ofcharacters comprising the characters 'S', 'u', 'm', = 2, +, 3, and ; is generated from source code 302a. Thereafter, the stream ofcharacters is analyzed lexically to generatealistoftokens502. Examplesofthecharacters inthe input stream include alphabetical characters, numerals, spe cial characters, mathematical operators, their combinations, and so forth. In an embodiment ofthe invention, the charac ters are processedsequentially to generate list oftokens 502. DOM constructor406 may use regularexpression rules and/ orCLDC semantics to generate the list oftokens 502. In an embodiment ofthe invention, regularexpression rules and/or CLDC semantics represent patternsthat may be contained in text of source code 302a. Example definitions of various types ofregular expressions may be: Identifier: is a sequence ofletters a-Zor Assignment operator: is the character = Addition operator: is the character + Semicolon: is the character : Number: is a sequence ofcharacters 0-9 In Such an exemplary embodiment, every time a regular expression rule is completed, a new token is added to list of tokens 502. In an embodiment of the invention, DOM con structor 406 is a lexical analyzer. In an embodiment of the invention, list of tokens 502 comprises columns of token list 504a and token type list 504b. Token list 504a comprises the tokens generated from stream of characters of source code 302a. Token type list 504b comprises the descriptions for the types of tokens. Tokens in list of tokens 502 may be categorized based on blocks of text that may be obtained from portions of the sourcecode. Referringto listoftokens 502, the token Sum in tokens 504a is defined as an identifier in type list 504b. Similarly,thecompleteprogrammingcodeoftheSourcecode
  • 13. US 8,762,963 B2 7 302a programming language can be processed to form a list of tokens. Subsequently, list oftokens 502 is processed by DOM constructor 406 to generate Document Object Model (DOM) 506. DOM 506 is a grammatical data structure and defines the relationships among the tokens in list oftokens 502. DOM constructor 406 analyzes syntactically list of tokens 502 to generate DOM506. Inanembodimentoftheinvention,DOM 506generates DOM506based on grammar rules defined for Syntactic analysis. Exemplary rules may include: Assignment Statement<-Identifier-Expression; Expressions-Literal OR Binary Expression; Binary Expressione-Expression Operator Expression; and/ O Literale-Number OR Identifier. The arrows in the above rules indicate the direction ofthe pattern matching reduction. Therefore, based on the above example, a statement Such as Sum=2+3 is termed as an assignmentstatement.Similarly,basedontheaboverules,the statement 2+3 is termed as a Binary Expression. In an embodimentofthe invention, the grammarrules can be recursive. Therefore, one or more rules may be applied recursively to prepare DOM506. As shown in FIG. 5, DOM 506comprises nodes 508a–f Nodes 508a-frepresents ahier archical data structure ofsource code 302a. Forexample, in FIG. 5, node 508c represents a binary expression, and nodes 508d, 508e, and 508fcomprise numbers and an operator, which are subsets of the binary expression of node 508c. Similarly, various document object models can be con structedbased on the files, text orcodes in source code302a. As discussed above, the collection of DOM 506 is used by environment DOM constructor 408 to generate the environ ment DOM. The conversion ofsource code 302a to environ ment DOMandsubsequentlyto targetcode202aisexplained in conjunction with FIG. 6. FIG. 6is a blockdiagram forthe translation ofsourcecode 302a totargetcode206a usingenvironmentDOM,according to an embodiment ofthe invention. Source code 302a may comprise various input files containing programming lan guagecode. As described in FIGS. 4and 5, theinput files are processed by DOM constructor 406 and environment DOM constructor408 to generate environment DOM 602. EnvironmentDOM 602comprises multipleDOMs506a-n corresponding to the inputfiles. The files DOMs 506a-n may be cross-referenced to generate a more accurate final struc ture referred to as environment DOM 602. Environment DOM 602 is analyzed by emitter410 to gen erateoutputfilesoftargetcode206a. Inanembodimentofthe invention, the output files correspond to the DOM 608a-n. Targetcode206a maycomprise,forexample,atextformat. In an embodiment ofthe invention, target code 206a includes code in object oriented programming languages such as, but not limited to, C++, C#, Java, AS3, and the like. FIG. 7 is a flowchart illustrating the translation ofsource 102accordingtoanembodimentoftheinvention.Atstep 702, one or more characters of source code 302a are analyzed lexically to generate a list of tokens. Thereafter, the list of tokens is analyzed syntactically to generate a document object model, at step 704. As discussed above, DOM con structor 406 may be used to analyze source code 302a lexi cally and to generate the document object model. Subsequently,at step706, documentobject models maybe generated for multiple files in source code 302a and may be collected to generate an environment DOM by environment DOM constructor 408. The DOMs may be cross-referenced by environment DOM constructor 408 to generate a more accurate final structure referred to as environment DOM. 10 15 25 30 35 40 45 50 55 60 65 8 At step 708, the environment DOM may be analyzed by emitter410togeneratetargetcode 206a oftargetapplication 204. Resources 302b ofsource 102 may be transformed by resource converter 402 to generate target resources 206b of target application 204. In an embodiment of the invention, target application 204 can be used by application develop ment framework 106 to generate platform specific applica tions for devices 108a-n. Embodiments of the invention are described above with reference to block diagrams and Schematic illustrations of methodsandsystemsaccordingtoembodimentsoftheinven tion. Itwillbeunderstoodthateach blockofthediagramsand combinations ofblocks in the diagrams can be implemented by computerprogram instructions. These computerprogram instructions maybe loadedonto oneormoregeneralpurpose computers, special purpose computers, or other program mable data processing apparatus or computing devices to produce machines, such that the instructions which execute on the computers or other programmable data processing apparatus create meansforimplementingthefunctionsspeci fied in the block orblocks. Such computerprogram instruc tions may also be stored in a computer-readable medium, Suchasa memory,thatcan directacomputing deviceorother programmable data processing apparatus to function in a particular manner. Such that the instructions stored in the computer-readable medium produce an article of manufac tureincluding instruction means that implement the function specified in theblockorblocks. Furthermore, such computer program instructions may be provided for download via a network and/or may be downloaded via a network. While the invention has been described in connection with what is presently considered to be the most practical and variousembodiments,itis to be understood thattheinvention is not to be limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalentarrangements included within the spiritand scope ofthe appended claims. This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including makingand usingany devices orsystemsandperformingany incorporated methods. The patentable scope the invention is defined in the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structuralelements thatdo notdifferfrom theliterallanguage oftheclaims, orifthey includeequivalentstructuralelements with insubstantial differences from the literal languages of the claims. We claim: 1. A method for converting a source application to a plat form-independent application, the method comprising: translating source programming language code of the Sourceapplicationtotargetprogramminglanguagecode of the platform-independent application, wherein the Source programming language code comprises Con nectedLimited DeviceConfiguration (CLDC)code,and wherein the target programming language code is in a platform-independent programming language that is independent ofone or more device platforms; converting one or more source resources associated with and configured to be used by the Source application to one or more target resources configured for use by the platform-independent application, wherein the Source resources are not included within the Source program ming language code ofthe Source application and the
  • 14. US 8,762,963 B2 target resources are not included within the target pro gramming language code ofthe platform-independent application; and providing a configuration ofthe source application to the platform-independentapplication, wherein the configu rationincludesdatadefiningsettings ofthesourceappli cation; wherein the translating is implemented by a first series of steps: wherein the converting is implemented by a second series ofsteps; and wherein the first series of steps are different from, and independent from, the second series ofsteps. 2. The method of claim 1, wherein the translating the Source programming language code comprises: tokenizingoneormorecharactersofoneormoreinputfiles ofthe Source programming language codeto generate a list oftokens; parsingthelistoftokenstogenerateoneormoredocument object models; generating an environment document object model com prising the one or more document object models, wherein the one or more inputfiles arecross-referenced within the one or more document object models ofthe environment document object model; and analyzing theenvironmentdocument object model togen erate one or more characters ofone or more output files ofthe target programming language code. 3. The method ofclaim 2, wherein theanalyzing the envi ronmentdocumentobjectmodelcomprisesusingadepth first search algorithm. 4. The method ofclaim 1, wherein the one or more target resources comprise one or more platform-independent SOUCS. 5. The method ofclaim 1, wherein the one or more target resources comprise one or more ofan image, an audio, or a video. 6.The methodofclaim 1,whereinthesourceprogramming language and the platform-independent programming lan guage are object oriented programming languages. 7. The methodofclaim 1, furthercomprisingdownloading computer-executable instructions that, ifexecuted by a com puting device, cause the computing device to execute said translating. 8. The methodofclaim 1, furthercomprisingdownloading computer-executable instructions that, ifexecuted by a com puting device, cause the computing device to execute said converting. 9.Themethodofclaim 1, furthercomprisingmakingavail able for downloading computer-executable instructions that, if executed by a computing device, cause the computing device to execute said translating. 10. The method of claim 1, further comprising making available for downloading computer-executable instructions that, ifexecuted by a computingdevice, causethecomputing device to execute said converting. 11. A system forconvertinga sourceapplication to a plat form-independent application, the system comprising: at least one computing device; and at least one memory device coupled to the at least one computing device, wherein the at least one memory device contains executableinstructions that, ifexecuted ontheatleastonecomputing device,resultintheimple mentation ofoperations comprising: translating source programming language code of the Sourceapplicationtotargetprogramming language code of the platform-independent application, wherein the 10 15 25 30 35 40 45 50 55 60 65 10 Source programming language code comprises Con nectedLimited DeviceConfiguration (CLDC)code,and wherein the target programming language code ofthe platform-independentapplication is in aplatform-inde pendent programming language that is independent of one or more device platforms; converting one or more source resources associated with and configured to be used by the Source application to oneormoretargetresourcesconfiguredtobeusedbythe platform-independent application, wherein the Source resources are not included within the Source program ming language code ofthe Source application and the target resources are not included within the target pro gramming language code ofthe platform-independent application; and providing a configuration ofthe source application to the platform-independentapplication, wherein theconfigu rationincludesdatadefiningsettingsoftheSourceappli cation; wherein the translating is implemented by a first series of steps: wherein the converting is implemented by a second series ofsteps; and wherein the first series ofsteps for the translating are dif ferent from, and independent from, the second series of steps for the converting. 12.Thesystem ofclaim 11, wherein theoneor more target resources comprise one or more ofan image, an audio, or a video. 13. The system ofclaim 11, wherein the source and the platform-independentprogramminglanguagesareobjectori ented programming languages. 14.Thesystem ofclaim 11, wherein theoneor more target resources comprise one or more platform-independent SOUCS. 15.Thesystem ofclaim 11, wherein translatingthe source programming language code comprises: tokenizingoneormorecharactersofoneormoreinputfiles ofthe source programming language codeto generatea list oftokens; parsingthelistoftokenstogenerateoneormoredocument object models; generating an environment document object model com prising the one or more document object models, wherein the one or more inputfiles arecross-referenced within the one or more document object models ofthe environment document object model; and analyzing theenvironmentdocument object model togen erate one or more characters ofone or more output files ofthe target programming language code. 16. The system ofclaim 15, wherein analyzing the envi ronmentdocumentobjectmodelcomprisesusingadepth first search algorithm. 17. A non-transitory computer-readable medium having computer-executable instructions that, ifexecuted by a com puting device, cause the computing device to implement operations comprising: translatingSourceprogramming languagecodeofasource application to target programming language code of a platform-independent application, wherein the Source programming language code comprises Connected Limited Device Configuration (CLDC) code, and wherein the target programming language code ofthe platform-independentapplication is in aplatform-inde pendent programming language that is independent of one or more device platforms;
  • 15. US 8,762,963 B2 11 converting one or more source resources associated with and configured to be used by the source application to oneormoretargetresourcesconfiguredtobeusedbythe platform-independent application, wherein the Source resources are not included within the Source program ming language code ofthe source application and the target resources are not included within, the target pro gramming language code ofthe platform-independent application; and providing a configuration ofthe source application to the platform-independentapplication, wherein the configu rationincludesdatadefiningsettings ofthesourceappli cation; wherein the translating is implemented by a first series of steps: wherein the converting is implemented by a second series ofsteps; and wherein the first series ofsteps for the translating are dif ferent from, and independent from, the second series of steps for the converting. 18. The medium ofclaim 17, wherein the translating the Source programming language code comprises: tokenizingoneormorecharactersofoneormoreinputfiles ofthe Source programming language codeto generate a list oftokens; 10 15 12 parsingthelistoftokenstogenerateoneormoredocument object models; generating an environment document object model com prising the one or more document object models, wherein the one or more inputfiles arecross-referenced within the one or more document object models ofthe environment document object model; and analyzing theenvironmentdocument object model togen erate one or more characters ofone or more output files ofthe target programming language code. 19. The medium ofclaim 18, wherein the analyzing the environmentdocumentobject model comprises usingadepth first search algorithm. 20. The medium ofclaim 17, wherein the source and the platform-independentprogramminglanguagesareobjectori ented programming languages. 21. The method of claim 1, wherein the configuration includes one or moreofa connection string ora refreshtime. 22. The system of claim 11, wherein the configuration includes one or moreofa connection string ora refreshtime. 23. The medium of claim 17, wherein the configuration includes one or moreofa connection string ora refreshtime. k k k k k