`
`12 United States Patent
`Drukin
`
`10 Patent N0.:
`(45) Date of Patent:
`
`US 7 552 124 B2
`9
`9
`Jun. 23, 2009
`
`(54) NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`
`7,027,975 B1 *
`2003/0074184 A1 *
`
`4/2006 Pazandak et a1. ............. .. 704/9
`4/2003 Hayosh et a1. ............... .. 704/1
`
`COMPUTING SYSTEM
`
`2003/0083861 A1 *
`
`5/2003 Weise .......................... .. 704/9
`
`(75) Inventor: Vladimir Drukin, Raanana (IL)
`
`(73) Assignee: IXI Mobile (R&D), Ltd. (IL)
`
`* Cited by examiner
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`Patent 15 extended or adlusted under 35
`U.S.C. 154(b) by 560 days.
`
`Primary ExamineriKhanh B pham
`(74) Attorney, Agent, or FirmiCentury IP Group, Inc.; F.
`Jason Faphadian’ Esq
`
`(22) Filed:
`
`Jun. 17, 2004
`
`(65)
`
`Prior Publication Data
`Us Zoos/0283467 A1
`Dec- 22> 2005
`
`(51) Int‘ Cl‘
`(200601)
`G06F 1 7/30
`(52) US. Cl. ....................... .. 707/10; 707/100; 707/101;
`_
`_
`_
`707/102
`(58) Fleld 0f Classl?catloll Search --------------- -- 707/200,
`_
`_
`707/100, 101, 10; 717/172477
`See 81313110201011 ?le for Complete Search hlSIOI'Y-
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`A method for programming a mobile communication device
`based on a h1gh-level code compr1s1ng operat1ve language 1s
`provided. The method comprises parsing the high-level code
`for keywords to recognize the operative language; determin
`ing at least one operation associated With the operative lan
`guage; determining Whether high-level code comprises key
`Words de?ning one Or more relationships and Conditions
`corresponding to the operative language; and producing an
`executable code that can be executed by a microcontroller of
`the mobile communication device to perform the respective
`operation associated With the operative language, Wherein the
`high-level code comprises at least one sentence formatted in
`accordance With a ?rst context.
`
`6,766,320 B1 *
`
`7/2004 Wang et a1. .................. .. 707/5
`
`10 Claims, 3 Drawing Sheets
`
`Star!
`
`’
`
`S2‘
`
`Process High
`Level Code
`
`Sm
`
`Recognize
`0pm“
`Language
`
`‘
`$23M
`' $212122
`c
`
`Show Determine
`,
`L_—> requested
`operation
`
`Determine
`$25M relationships
`and
`Conditions
`
`7
`
`Produce
`$26M Executable
`Code
`
`I
`End
`
`GOOGLE EXHIBIT 1001
`
`Page 1 of 9
`
`
`
`US. Patent
`
`Jun. 23, 2009
`
`Sheet 1 of3
`
`US 7,552,124 B2
`
`=2Ho=nE<
`obsscom
`039326
`
`NE M
`
`
`
`Biom x8362
`
`o2
`
`260
`
`of
`
`AU
`HV
`
`onoU
`~23 PE:
`
`on H
`
`cosmomcsEEou
`
`£0362
`
`o:
`
`~ .Ubw
`
`QESBBQ
`
`260
`
`02
`
`25
`62 5E
`
`or
`
`NN:
`
`
`
`025C 2502
`
`o?
`
`Page 2 of 9
`
`
`
`US. Patent
`
`Jun. 23, 2009
`
`Sheet 2 of3
`
`US 7,552,124 B2
`
`1
`
`Start
`
`)
`
`821w Process High
`Level Code
`
`Recognize L.
`S220 % Operative
`Language
`
`823%
`
`Recognize
`data source
`
`V
`S240
`Determine
`,8
`requested
`operation
`
`S250
`
`Determine
`relationships
`and
`Conditions
`
`7
`
`Produce
`$26M Executable
`Code
`
`End
`
`FIG. 2
`
`Page 3 of 9
`
`
`
`US. Patent
`
`Jun. 23, 2009
`
`Sheet 3 of3
`
`US 7,552,124 B2
`
`Hardware Environment 1110 *N
`
`1101
`
`1102 \
`
`1103 \
`
`1104 \
`
`Main
`Memory
`
`I/O
`Controller
`
`Cache
`Memory
`
`Bus 1100
`
`User
`Interface
`
`Storage
`Media
`
`Display
`Screen
`
`Communication
`Interface
`
`1105
`
`1106
`
`1107
`
`HG. 3A
`
`122 l\
`Application
`Software
`
`Software Environment 1120
`
`X
`
`1124 m
`
`Page 4 of 9
`
`
`
`US 7,552,124 B2
`
`1
`NATURAL LANGUAGE FOR
`PROGRAMMING A SPECIALIZED
`COMPUTING SYSTEM
`
`BACKGROUND
`
`1. Field of Invention
`The present invention relates generally to specialized com
`puting systems and, more particularly, to a system and
`method for programming a mobile communication device
`using a high-level natural language.
`2. Copyright & Trademark Notices
`A portion of the disclosure of this patent document con
`tains material, Which is subject to copyright protection. The
`oWner has no objection to the facsimile reproduction by any
`one of the patent document or the patent disclosure, as it
`appears in the Patent and Trademark O?ice patent ?le or
`records, but otherWise reserves all copyrights Whatsoever.
`Certain marks referenced herein may be common laW or
`registered trademarks of third parties a?iliated or una?iliated
`With the applicant or the assignee. Use of these marks is for
`providing an enabling disclosure by Way of example and shall
`not be construed to limit the scope of this invention to material
`associated With such marks.
`3. Related Art
`Computing systems continue to dramatically enhance our
`quality of life. Many specialiZed computing systems, such as
`mobile communication devices (e.g., cellular phones) and
`data organiZers (e.g., personal digital assistants (PDAs)) are
`particularly popular these days. The technically savvy con
`sumers can operate these specialiZed devices to perform
`many operational features for Which the devices are con?g
`ured.
`For example, some cellular phones have special features
`that alloW a consumer to program the phone to produce a
`special tone, if a call is received from a designated phone
`number (i.e., audio caller identi?cation). Other programming
`features may include voice-activated dialing, voice mail man
`agement, or other functions that may be con?gured in accor
`dance With occurrence of particular conditions and events.
`Unfortunately for the less technically inclined consumer,
`most of said operational features are hardly usable, because
`the consumer either does not possess the skill or cannot learn
`the requisite steps to properly program the device to perform
`various functions. Generally, most consumers ?nd it tedious
`to program the device to perform the special features, and
`therefore forgo using said features altogether.
`Thus, a more natural method for programming specialiZed
`computing systems is desirable to promote use and enhance
`the user’s level of enjoyment.
`
`SUMMARY
`
`The present disclosure is directed to a system and corre
`sponding methods that facilitate programming a mobile com
`munication device or other specialiZed computing device
`using a natural language.
`For purposes of summarizing, certain aspects, advantages,
`and novel features of the invention have been described
`herein. It is to be understood that not necessarily all such
`advantages may be achieved in accordance With any one
`particular embodiment of the invention. Thus, the invention
`may be embodied or carried out in a manner that achieves or
`optimiZes one advantage or group of advantages as taught
`herein Without necessarily achieving other advantages as may
`be taught or suggested herein.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`2
`In one embodiment, a method for programming a mobile
`communication device based on a hi gh-level code comprising
`operative language comprises parsing the high-level code for
`keyWords to recogniZe the operative language; determining at
`least one operation associated With the operative language;
`determining Whether high-level code comprises keyWords
`de?ning one or more relationships and conditions corre
`sponding to the operative language; and producing an execut
`able code that can be executed by a microcontroller of the
`mobile communication device to perform the respective
`operation associated With the operative language, Wherein the
`high-level code comprises at least one sentence formatted in
`accordance With a ?rst context.
`In one embodiment, application softWare is executed on
`the mobile communication device performs the parsing and
`determining steps, When the high-level code comprises a ?rst
`level of complexity. In another embodiment, application soft
`Ware executed on a netWork server connected to the mobile
`communication device performs the parsing and determining
`steps, When the high-level code comprises a second level of
`complexity. In yet another embodiment, application softWare
`executed on a distributed environment, comprising the
`mobile communication device and a netWork server con
`nected to the mobile communication device, performs the
`parsing and determining steps.
`The hi gh-level code is transmitted to the netWork server to
`produce the executable code after the netWork server per
`forms the parsing and determining steps. The executable code
`is transmitted to the mobile communication device to be
`executed by the microcontroller of the mobile communica
`tion device. In one embodiment, at least one sentence com
`prises one or more keyWords and the ?rst context is a natural
`language context. The high-level code may be contained in a
`script. The script is Written by a user of the mobile commu
`nication device.
`In accordance With another embodiment, a system for pro
`gramming a mobile communication device based on a high
`level code comprising operative language is provided. The
`system comprises means for parsing the high-level code for
`keyWords to recogniZe the operative language; means for
`determining at least one operation associated With the opera
`tive language; means for determining Whether high-level
`code comprises keyWords de?ning one or more relationships
`and conditions corresponding to the operative language; and
`means for producing an executable code that can be executed
`by a microcontroller of the mobile communication device to
`perform the respective operation associated With the opera
`tive language, Wherein the high-level code comprises at least
`one sentence formatted in accordance With a ?rst context.
`These and other embodiments of the present invention Will
`also become readily apparent to those skilled in the art from
`the folloWing detailed description of the embodiments having
`reference to the attached ?gures, the invention not being
`limited to any particular embodiments disclosed.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Embodiments of the present invention are understood by
`referring to the ?gures in the attached draWings, as provided
`beloW.
`FIG. 1 illustrates an exemplary communications environ
`ment, in accordance With one or more embodiments of the
`invention;
`FIG. 2 is a How diagram of a method for providing a natural
`programming language for a specialiZed computing device,
`in accordance With one or more embodiments; and
`
`Page 5 of 9
`
`
`
`US 7,552,124 B2
`
`3
`FIGS. 3A and 3B are block diagrams of hardware and
`software environments in Which a system of the present
`invention may operate, in accordance With one or more
`embodiments.
`Features, elements, and aspects of the invention that are
`referenced by the same numerals in different ?gures represent
`the same, equivalent, or similar features, elements, or aspects,
`in accordance With one or more embodiments.
`
`DETAILED DESCRIPTION
`
`An electronic system and corresponding methods, accord
`ing to an embodiment of the present invention, facilitate and
`provide a method and system for programming a specialiZed
`computing device.
`The terms electronic services, services, and online services
`are used interchangeably herein. The services provided by the
`system of this invention, in one or more embodiments, are
`provided by a service provider. A service provider is an entity
`that operates and maintains the computing systems and envi
`ronment, such as server systems and infrastructures that
`enable the delivery of information. Typically, server architec
`ture includes components (e.g., hardWare, softWare, and com
`munication lines) that store and offer electronic or online
`services.
`In the folloWing, numerous speci?c details are set forth to
`provide a thorough description of various embodiments of the
`invention. Certain embodiments of the invention may be prac
`ticed Without these speci?c details or With some variations in
`detail. In some instances, features not pertinent to the novelty
`of the system are described in less detail so as not to obscure
`other aspects of the invention.
`Referring to the draWings, FIG. 1 illustrates an exemplary
`communications environment in Which the system of the
`present invention may operate. In accordance With one aspect
`of the invention, the system environment comprises a net
`Work server 100, a communication netWork 110, and a mobile
`device 120. The netWork server 100 and mobile device 120
`are connected by Way of the communication netWork 110.
`The terms “connected,” “coupled,” or any variant thereof,
`mean any connection or coupling, either direct or indirect,
`betWeen tWo or more elements. The coupling or connection
`betWeen the elements can be physical, logical, or a combina
`tion thereof.
`In one embodiment, communication netWork 110 provides
`the medium and infrastructure for transmitting digital or ana
`log signals betWeen netWork server 100 and mobile device
`120. In certain embodiments, mobile device 120 is a cellular
`telephone and communication netWork 110 is a Wireless tele
`phone netWork, for example. Mobile device 120, netWork
`server 100 and communication netWork 110, hoWever, may
`be implemented over any type of mobile, ?xed, Wired or
`Wireless communication technology (e.g., landline tele
`phony, cellular, radio, radar, infrared, etc.).
`One of ordinary skill in the art Will appreciate that com
`munication netWork 110 may advantageously be comprised
`of one or a combination of various types of netWorks Without
`detracting from the scope of the invention. Such netWorks
`can, for example, comprise personal area netWorks (PANs),
`local area netWorks (LANs), Wide area netWorks (WANs),
`public, private or secure netWorks, value-added netWorks,
`interactive television netWorks, Wireless communications
`netWorks, tWo-Way cable netWorks, satellite netWorks, inter
`active kiosk netWorks, cellular netWorks, personal mobile
`gateWays (PMGs) and/ or any other suitable communications
`netWorks that can provide a means of communication
`betWeen mobile device 120 and netWork server 100.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`In some embodiments, communication netWork 1 10 can be
`a part of the World Wide Web (i.e., the Internet). The Internet,
`in a Well-knoWn manner, connects millions of computers
`World Wide through standard common addressing systems
`and communications protocols (e.g., Transmission Control
`Protocol/Internet Protocol (TCP/IP), HyperText Transport
`Protocol) creating a vast communications netWork.
`In either context, mobile device 120 can communicate With
`netWork server 100 to send and receive electronic packets of
`information, in form of electronic requests and responses. In
`a particular embodiment, a high-level code 150 Written by a
`user and stored in mobile device 120’ s memory, for example,
`may be transmitted over communication netWork 110 from
`mobile device 120 to netWork server 100 for processing.
`High-level code 150, in a preferred embodiment, com
`prises text formatted in the context of a natural language (e. g.,
`English, French, Spanish, Japanese, etc.). High-level code
`150 may comprise one or more sentences, Wherein each sen
`tence comprises at least one operative language (i.e. keyWord)
`de?ning an instruction for a function or an operation to be
`performed. In one embodiment, the sentences also comprise
`keyWords de?ning conditions or relationships based on
`Which an operation is performed.
`To illustrate, an exemplary script Written by a user in a
`natural language may include a sentence such as “Transfer
`call to voice mail if call is from Bob”. The operative language
`(i.e., keyWord or instruction) in the sentence is “transfer”. The
`condition is “if call is from Bob”. Keywords such as “if” or the
`like are used to indicate a condition or relationship. Applica
`tion softWare 1122 can process sentences Written in natural
`language to recogniZe the included keyWords.
`In one or more embodiments, the operations that can be
`performed by mobile device 120 are limited because mobile
`device 120 is a specialiZed computing system developed and
`manufactured to perform particular functions or operations
`(e.g., related to making and receiving telephone calls). There
`fore, the corresponding conditions and relationships associ
`ated With the particular functions fall Within a ?nite set for
`each operation. For example, the conditions associated With
`an operation to receive a call may include ansWering the call,
`transferring the call to voice mail, or disconnecting the call.
`Accordingly, application softWare 1122 can act as a natural
`language compiler to processes high-level code 150 to control
`the operation of mobile device 120 based a de?ned set of
`conditions. In one embodiment, as shoWn in FIG. 1, depend
`ing on the level of sophistication and complexity, high-level
`code 150 may be processed by application softWare 1122 to
`produce executable code 160.
`Thus, if high-level code 150 comprises a complex set of
`instructions, then high-level code 150 is transmitted to net
`Work server 100, so that a more poWerful system is utiliZed to
`process and compile high-level code 150. Therefore, in one
`embodiment, application softWare 1 122 or a portion thereof is
`installed and executed on netWork server 100 to process high
`level code 150 and to produce executable code 160. Execut
`able code 160 is then transmitted over communication net
`Work 110 to mobile device 120.
`Alternatively, if high-level code 150 comprises a less com
`plex structure, then application softWare 1122 or a portion
`thereof is installed and executed on mobile device 120 to
`process high-level code 150 to produce executable code 160,
`Without the need for transferring high-level code 150 to a
`more poWerful processing environment implemented on net
`Work server 100.As such, simple instructions implemented in
`a natural language context can be processed more ef?ciently
`by a locally executed version of application softWare 1122. In
`some embodiments, depending on implementation, a ?rst
`
`Page 6 of 9
`
`
`
`US 7,552,124 B2
`
`5
`part of high-level code 150 is processed by application soft
`ware 1122 executed on mobile device 120 and a second part
`of high-level code 150 is processed by application software
`1122 executed on network server 100.
`Executable code 160, according to one embodiment, com
`prises binary or hex code that can be processed by a micro
`controller or processor embedded in mobile device 120 to
`cause mobile device 120 to perform the requisite operations
`according to the operational language included in high-level
`code 150. Exemplary operational language may include an
`instruction to turn mobile device 120 on or off at a certain
`time, to set an alarm with a particular tune, to display a
`particular image when a call from an identi?able party is
`received, to automatically place a call to a designated desti
`nation, to forward received text messages from an identi?able
`source to a designated email account, and numerous other
`telephony related operations.
`In accordance with one embodiment, in addition to mobile
`device 120 or network server 100, application software 1122
`may be installed or executed on at least one of a third party
`portal, a service provider or a combination of said systems.As
`used herein, the terms mobile device, third party portal, ser
`vice provider and communication network are to be viewed as
`designations of one or more computing environments that
`comprise application, client or server software for servicing
`requests submitted by respective software included in devices
`or other computing systems connected there to. These terms
`are not to be otherwise limiting in any manner. Application
`software 1122, for example, may be comprised of one or more
`modules that execute on one or more computing systems.
`Referring to FIG. 2, once a user has edited and stored a
`high-level code written in a natural language (e.g., “Transfer
`all text messages from Mary to my Yahoo account”), by way
`of interacting with mobile device 120’s user interface, for
`example, application software 1122 processes the high-level
`code 150 (S210). Thus, application software 1122 pareses
`high-level code 150 for keywords in an attempt to recogniZe
`any operative language included in high-level code 150
`(S220). For example, application software 1122 may deter
`mine that “transfer” as used in the above example is the
`operative language for performing a function, namely trans
`ferring a certain content received by mobile device 120 to a
`destination.
`Application software 1122 is also be implemented to parse
`high-level code 150 for keywords in an attempt to recogniZe
`any data sources (S230). For example, application software
`1122 may search mobile device 120’s internal memory to
`determine if a data source (e.g., a contacts database) stores
`information associated with the name “Mary”, so that when a
`text message is received from “Mary” the corresponding
`function or operation de?ned in high-level code 150 is per
`formed.
`Once application software 1122 parses high-level code 150
`for the particular keywords, then application software 1122
`determines the requested operation that is to be performed in
`accordance with the recogniZed keywords (S240). As noted
`above, for example, the keyword “transfer” would indicate
`that a transfer operation is to be performed. Furthermore,
`application software 1122 determines the relationships and
`conditions that are to be taken into account for the operation
`to be performed (S250). That is, the “transfer” operation is,
`for example, to be performed when a particular condition,
`namely “receipt of a text message from Mary”, is satis?ed.
`Once the operations, conditions, and relationships are rec
`ogniZed, then application software 1122 produces executable
`code 160 (S260). A processor of mobile device 120 executes
`executable code 260 in order to accomplish the results con
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`templated according to instructions in high-level code 150.
`Thus, for example, mobile device 120 will operate to monitor
`text messages received from various sources in order to deter
`mine if a message is from “Mary”, for example, and transfers
`such messages to a designated destination, such as a Yahoo
`email account, for example, instead of storing the messages in
`mobile device 120’s memory.
`As such, a user can manipulate the operation of mobile
`device 120 by writing a high-level code 150 in a natural
`language (e.g., “if Eugene calls on Saturday morning, for
`ward call to voice mail” or “if Bob calls anytime then show
`picture bob.jpg and play ring tone ring1.wav”).
`Application software 1122 may be implemented, installed
`or executed on a device or a system other than mobile device
`120. For example, application software 1122 or its compo
`nents may be implemented, installed, and executed either in a
`singular or in a distributed environment. That is, certain com
`ponents of the application software may be installed and
`executed on mobile device 120, while other components may
`be executed and installed on a third party portal, one or more
`network servers 100, a PMG server or other systems attached
`thereto.
`In one or more embodiments of the system, network server
`100, communication network 110, and mobile device 120
`comprise a controlled computing system environment that
`can be presented largely in terms of hardware components
`and software code executed to perform processes that achieve
`the results contemplated by the system of the present inven
`tion. A more detailed description of such system environment
`is provided below with reference to FIGS. 3A and 3B.
`As shown, a computing system environment is composed
`of two environments, a hardware environment 1110 and a
`software environment 1120. The hardware environment 1110
`comprises the machinery and equipment that provide an
`execution environment for the software. The software pro
`vides the execution instructions for the hardware. It should be
`noted that certain hardware and software components may be
`interchangeably implemented in either form, in accordance
`with different embodiments.
`Software environment 1120 is divided into two major
`classes comprising system software 1121 and application
`software 1122. System software 1121 comprises control pro
`grams, such as the operating system (OS) and information
`management systems that instruct the hardware how to func
`tion and process information.
`Application software 1122 is a program that performs a
`speci?c task. In embodiments of the invention, system and
`application software are implemented and executed on one or
`more hardware environments to program a mobile device
`using a high-level code.
`Referring to FIG. 3A, an embodiment of application soft
`ware 1122 can be implemented as computer software in the
`form of computer readable code executed on a general pur
`pose hardware environment 1110 that comprises a central
`processor unit (CPU) 1101, a main memory 1102, an input/
`output controller 1103, optional cache memory 1104, a user
`interface 1105 (e.g., keypad, pointing device, etc.), storage
`media 1106 (e.g., hard drive, memory, etc.), a display screen
`1107, a communication interface 1108 (e.g., a network card,
`a modem, or an integrated services digital network (ISDN)
`card, etc.), and a system synchroniZer (e.g., a clock).
`Processor 1101 may or may not include cache memory
`1104 utiliZed for storing frequently accessed information. A
`communication mechanism, such as a bi-directional data bus
`1100, can be utiliZed to provide for means of communication
`between system components. Hardware Environment 1110 is
`capable of communicating with local or remotes systems
`
`Page 7 of 9
`
`
`
`US 7,552,124 B2
`
`7
`connected to a communications network (e.g., a PAN or a
`WAN) through communication interface 1108.
`In one or more embodiments, hardware environment 1110
`may not include all the above components, or may include
`additional components for additional functionality or utility.
`For example, hardware environment 1110 can be a laptop
`computer or other portable computing device that can send
`messages and receive data through communication interface
`1108. Hardware environment 1110 may also be embodied in
`an embedded system such as a set-top box, a personal data
`assistant (PDA), a wireless communication unit (e.g., cellular
`phone), or other similar hardware platforms that have infor
`mation processing and/or data storage and communication
`capabilities. For example, in embodiments of the system
`mobile device 120 may be a PMG phone or equivalent.
`In embodiments of the system, communication interface
`1108 can send and receive electrical, electromagnetic, or
`optical signals that carry digital data streams representing
`various types of information including program code. If com
`munication is established via the Internet, hardware environ
`ment 1110 may transmit program code through an Internet
`connection. Central processor unit 1101 or stored in storage
`media 1106 or other non-volatile storage for later execution
`can execute the program code.
`Program code may be transmitted via a carrier wave or may
`be embodied in any other form of computer program product.
`A computer program product comprises a medium con?g
`ured to store or transport computer readable code or a medium
`in which computer readable code may be embedded. Some
`examples of computer program products are CD-ROM disks,
`ROM cards, ?oppy disks, magnetic tapes, computer hard
`drives, and network server systems.
`In one or more embodiments of the invention, processor
`1101 is a microprocessor manufactured by Motorola, Qual
`comm, Intel, Texas Instruments, or Sun Microsystems Cor
`porations. The named processors are for the purpose of
`example only. Any other suitable microprocessor, microcon
`troller, or microcomputer may be utiliZed.
`Referring to FIG. 3B, software environment 1120 is stored
`in storage media 1106 and is loaded into memory 1102 prior
`to execution. Software environment 1120 comprises system
`software 1121 and application software 1122. Depending on
`system implementation, certain aspects of software environ
`ment 1120 can be loaded on one or more hardware environ
`ments 1110.
`System software 1121 comprises control software such as
`an operating system that controls the low-level operations of
`hardware environment 1110. Low-level operations comprise
`the management of the system’s resources such as memory
`allocation, ?le swapping, and other core computing tasks. In
`one or more embodiments of the invention, the operating
`system comprises at least one of Symbian, Nucleus,
`Microsoft Windows, Palm, or Macintosh operating systems.
`However, any other suitable operating system may be uti
`liZed.
`Application software 1122 can comprise one or more com
`puter programs that are executed on top of system software
`1121 after being loaded from storage media 1106 into
`memory 1102. In a client-server architecture, application
`software 1122 may comprise client software and server soft
`ware. Referring to FIG. 1, for example, in one embodiment of
`the invention, client software is executed on mobile device
`120 and server software is executed on network server 100.
`Software environment 1120 may also comprise web
`browser software 1126 for communicating with the Internet.
`Further, software environment 1120 may comprise a user
`interface 1124 (e.g., a Graphical User Interface (GUI)) for
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`receiving user commands and data. The commands and data
`received are processed by the software applications that run
`on the hardware environment 1110. The hardware and soft
`ware architectures and environments described above are for
`purposes of example. Embodiments of the invention may be
`implemented in any type of system architecture or processing
`environment.
`Embodiments of the invention are described by way of
`example as applicable to systems and corresponding methods
`that facilitate optimizing power consumption in a mobile
`device. In this exemplary embodiment, logic code for per
`forming these methods is implemented in the form of, for
`example, application software 1122. The logic code, in one
`embodiment, may be comprised of one or more modules that
`execute on one or more processors in a distributed or non
`distributed communication model.
`It should also be understood that the programs, modules,
`processes, methods, and the like, described herein are but an
`exemplary implementation and are not related, or limited, to
`any particular computer, apparatus, or computer program
`ming language. Rather, various types of general-purpose
`computing machines or devices may be used with logic code
`implemented in accordance with the teachings provided,
`herein. Further, the order in which the steps of the present
`method are performed is purely illustrative in nature. In fact,
`the steps can be performed in any order or in parallel, unless
`indicated otherwise in the present disclosure.
`The method of the present invention may be performed in
`either hardware, software, or any combination thereof. In
`particular, the present method may be carried out by software,
`?rmware, or macrocode operating on a computer or comput
`ers of any type. Additionally, software embodying the present
`invention may comprise computer instructions and be stored
`in a recording medium (e.g., memory stick, ROM, RAM,
`magnetic media, punched tape or card, compact disk (CD),
`DVD, etc.). Furthermore, such software may be transmitted
`in the form of a computer signal embodied in a carrier wave,
`and through communication networks by way of Internet
`portals or websites, for example. Accordingly, the present
`invention is not limited to any particular platform, unless
`speci?cally stated otherwise in the present disclosure.
`The present invention has been described above with ref
`erence to preferred embodiments. However, those skilled in
`the art will recogniZe that changes and modi?cations may be
`made in these preferred embodiments without departing from
`the scope of the present invention.
`The embodiments described above are to be considered in
`all aspects as illustrative only and not restrictive in any man
`ner. Thus, other system architectures, platforms, and imple
`mentations that can support various aspects of the invention
`may be utiliZed without departing from the essential charac
`teristics as described herein. These and various other adapta
`tions and combinations of features of the embodiments dis
`closed are within the scope of the invention. The invention is
`de?ned by the claims and their full scope of equivalents.
`
`The invention claimed is:
`1. A method for programming a mobile communication
`device based on a high-level code comprising operative lan
`guage, the method comprising:
`receiving a high-level code comprising one or more key
`words, wherein the high-leve