[go: up one dir, main page]

RU2014133160A - Генерирование и кэширование кода программного обеспечения - Google Patents

Генерирование и кэширование кода программного обеспечения Download PDF

Info

Publication number
RU2014133160A
RU2014133160A RU2014133160A RU2014133160A RU2014133160A RU 2014133160 A RU2014133160 A RU 2014133160A RU 2014133160 A RU2014133160 A RU 2014133160A RU 2014133160 A RU2014133160 A RU 2014133160A RU 2014133160 A RU2014133160 A RU 2014133160A
Authority
RU
Russia
Prior art keywords
code
execution
actions
source code
software
Prior art date
Application number
RU2014133160A
Other languages
English (en)
Other versions
RU2646329C2 (ru
Inventor
Джомо ФИШЕР
Майкл Вэйн ДЖЕКСОН
Юнус КИЛИК
Стивен Эдвард ЛУККО
Джесс Д. МАКГЭТА
Еджей З. МЯДОВИЧ
Стивен Дж. СТЕЙНЕР
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2014133160A publication Critical patent/RU2014133160A/ru
Application granted granted Critical
Publication of RU2646329C2 publication Critical patent/RU2646329C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

1. Способ, реализуемый, по меньшей мере, частично, компьютером, при этом способ содержит:прием пакета, который включает в себя исходный код программного обеспечения, для установки на целевое устройство;установку пакета на целевое устройство; ивыполнение первого набора действий для первоначального компилирования исходного кода перед исполнением программного обеспечения, если не принят запрос на исполнение программного обеспечения до начала или завершения первого набора действий, причем первый набор действий включает в себя:компилирование исходного кода во второй код, исохранение второго кода в энергонезависимой памяти.2. Способ по п. 1, дополнительно содержащий, если запрос на исполнение программного обеспечения принят до начала или завершения первого набора действий, выполнение второго набора действий до завершения первого набора действий, причем второй набор действий включает в себя:на целевом устройстве, исполнение исходного кода или выведенного из него исполняемого кода.3. Способ по п. 1, в котором первый набор действий дополнительно включает в себя отображение в памяти второго кода в энергонезависимой памяти для совместного использования второго кода для процессов, исполняющих два или более пакета.4. Способ по п. 1, дополнительно содержащий помещение указателя в структуре данных, что исходный код должен быть скомпилирован во второй код для целевого устройства; инахождение указателя в структуре данных, и при этом компилирование исходного кода во второй код выполняется в ответ на нахождение указателя в структуре данных.5. Способ по п. 1, дополнительно содержащий прием указания инициирующего повторное генерирование события и,

Claims (10)

1. Способ, реализуемый, по меньшей мере, частично, компьютером, при этом способ содержит:
прием пакета, который включает в себя исходный код программного обеспечения, для установки на целевое устройство;
установку пакета на целевое устройство; и
выполнение первого набора действий для первоначального компилирования исходного кода перед исполнением программного обеспечения, если не принят запрос на исполнение программного обеспечения до начала или завершения первого набора действий, причем первый набор действий включает в себя:
компилирование исходного кода во второй код, и
сохранение второго кода в энергонезависимой памяти.
2. Способ по п. 1, дополнительно содержащий, если запрос на исполнение программного обеспечения принят до начала или завершения первого набора действий, выполнение второго набора действий до завершения первого набора действий, причем второй набор действий включает в себя:
на целевом устройстве, исполнение исходного кода или выведенного из него исполняемого кода.
3. Способ по п. 1, в котором первый набор действий дополнительно включает в себя отображение в памяти второго кода в энергонезависимой памяти для совместного использования второго кода для процессов, исполняющих два или более пакета.
4. Способ по п. 1, дополнительно содержащий помещение указателя в структуре данных, что исходный код должен быть скомпилирован во второй код для целевого устройства; и
нахождение указателя в структуре данных, и при этом компилирование исходного кода во второй код выполняется в ответ на нахождение указателя в структуре данных.
5. Способ по п. 1, дополнительно содержащий прием указания инициирующего повторное генерирование события и, в ответ, повторное выполнение первого набора действий, потенциально с другим исходным кодом и другим вторым кодом, скомпилированным из другого исходного кода.
6. Компьютерный носитель данных с исполняемыми компьютером инструкциями, которые при исполнении выполняют действия, содержащие:
прием запроса на исполнение программного обеспечения, которое включает в себя исходный код;
в ответ на запрос, определение, был ли второй код уже сгенерирован из исходного кода и сохранен в средстве энергонезависимого хранения;
если второй код уже был сгенерирован до приема запроса, выполнение первого набора действий, содержащего:
получение второго кода, и
исполнение второго кода или выведенного из него кода; и
если второй код не был уже сгенерирован до приема запроса, выполнение второго набора действий, содержащего:
получение исходного кода,
генерирование второго кода из исходного кода;
исполнение второго кода или выведенного из него кода, и
если второй код не был уже сгенерирован до приема запроса, выполнение третьего набора действий, содержащего:
сохранение второго кода в средстве энергонезависимого хранения для использования при последующем исполнении программного обеспечения.
7. Компьютерный носитель данных по п. 6, в котором выполнение третьего набора действий дополнительно содержит:
повторное получение исходного кода; и
повторное генерирование второго кода из исходного кода.
8. Компьютерный носитель данных по п. 6, дополнительно содержащий проверку, был ли второй код модифицирован после того как был сгенерирован, и если так, то выполнение действий, содержащих:
повторное получение исходного кода;
повторное генерирование второго кода из исходного кода; и
сохранение второго кода в средстве энергонезависимого хранения для использования при последующем исполнении программного обеспечения.
9. Система в вычислительной среде, содержащая:
хранилище, выполненное с возможностью хранения данных пакета, при этом пакет включает в себя исходный код программного обеспечения;
установщик, выполненный с возможностью установки пакета в хранилище, при этом установщик дополнительно выполнен с возможностью обновления структуры данных для указания того, что исходный код должен быть компилирован во второй код;
генератор кода, выполненный с возможностью изучения структуры данных для идентификации исходного кода и компилирования исходного кода во второй код;
диспетчер кэша, выполненный с возможностью сохранения постоянно второго кода в хранилище и обеспечения доступа ко второму коду в хранилище;
диспетчер исполнения, выполненный с возможностью приема запроса на исполнение программного обеспечения и определения, скомпилировал ли уже генератор кода исходный код во второй код и, если так, то выполнения действий, содержащих:
получение второго кода, и
исполнение второго кода или выведенного из него кода; и
если не так, то выполнения действий, содержащих:
получение исходного кода,
побуждение исходного кода к компилированию во второй код, и
исполнение второго кода или выведенного из него кода.
10. Система по п. 9, в которой диспетчер исполнения дополнительно выполнен с возможностью побуждения второго кода к генерированию без задержки, если генератор кода не скомпилировал уже исходный код во второй код до того, как принят запрос.
RU2014133160A 2012-02-13 2013-02-04 Генерирование и кэширование кода программного обеспечения RU2646329C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/371,479 2012-02-13
US13/371,479 US9110751B2 (en) 2012-02-13 2012-02-13 Generating and caching software code
PCT/US2013/024559 WO2013122758A1 (en) 2012-02-13 2013-02-04 Generating and caching software code

Publications (2)

Publication Number Publication Date
RU2014133160A true RU2014133160A (ru) 2016-03-10
RU2646329C2 RU2646329C2 (ru) 2018-03-02

Family

ID=48946742

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014133160A RU2646329C2 (ru) 2012-02-13 2013-02-04 Генерирование и кэширование кода программного обеспечения

Country Status (11)

Country Link
US (3) US9110751B2 (ru)
EP (1) EP2815309B1 (ru)
JP (1) JP6195849B2 (ru)
KR (1) KR101966754B1 (ru)
CN (1) CN104137057B (ru)
AU (1) AU2013219875B2 (ru)
BR (1) BR112014019783B1 (ru)
CA (1) CA2861426C (ru)
MX (1) MX336964B (ru)
RU (1) RU2646329C2 (ru)
WO (1) WO2013122758A1 (ru)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110751B2 (en) 2012-02-13 2015-08-18 Microsoft Technology Licensing, Llc Generating and caching software code
US9104434B2 (en) 2013-12-20 2015-08-11 Microsoft Technology Licensing, Llc Property accesses in dynamically typed programming languages
US9207914B2 (en) 2013-12-20 2015-12-08 Microsoft Technology Licensing, Llc Execution guards in dynamic programming
US9442707B2 (en) * 2014-06-25 2016-09-13 Microsoft Technology Licensing, Llc Incremental whole program compilation of code
US9772824B2 (en) * 2015-03-25 2017-09-26 International Business Machines Corporation Program structure-based blocking
US9811324B2 (en) * 2015-05-29 2017-11-07 Google Inc. Code caching system
US10055208B2 (en) 2015-08-09 2018-08-21 Oracle International Corporation Extending a virtual machine instruction set architecture
US9690360B2 (en) * 2015-08-13 2017-06-27 Intel Corporation Technologies for discontinuous execution by energy harvesting devices
US9696973B1 (en) * 2016-02-24 2017-07-04 Semmle Limited Compilation cache with imports scanner
CN108304189B (zh) * 2016-08-29 2021-03-12 迈普通信技术股份有限公司 多镜像设备软件编译方法、装置及设备
US10311217B2 (en) * 2016-12-09 2019-06-04 Microsoft Technology Licensing, Llc Application piracy prevention with secure enclave protection of automatically modularized functions
JP2018101240A (ja) * 2016-12-20 2018-06-28 株式会社ミロク情報サービス キャッシュ管理プログラム、キャッシュ管理装置及びキャッシュ管理方法
JP7030426B2 (ja) * 2017-05-31 2022-03-07 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
CN107341007B (zh) * 2017-06-20 2020-08-11 深圳创维-Rgb电子有限公司 显示终端及其定时开机方法、计算机可读存储介质
US10749740B2 (en) * 2017-10-31 2020-08-18 Hewlett Packard Enterprise Development Lp Deploying network-based cloud platforms on end equipment
US10606613B2 (en) 2018-05-31 2020-03-31 Bank Of America Corporation Integrated mainframe distributed orchestration tool
WO2020013724A1 (ru) * 2018-07-11 2020-01-16 Михаил Сергеевич ГЕРМАН Способ управления данными веб-сайта
CN108984183A (zh) * 2018-08-28 2018-12-11 郑州云海信息技术有限公司 一种软件跨地域构建方法、装置、设备及存储介质
KR102663196B1 (ko) * 2018-11-16 2024-05-07 삼성전자주식회사 사용자 단말장치, 서버, 사용자 단말장치의 제어방법 및 서버의 제어방법
KR101967840B1 (ko) * 2019-03-05 2019-08-13 (주) 피플아이 패키지 소프트웨어 생성 장치
US11150915B2 (en) 2019-09-13 2021-10-19 International Business Machines Corporation Deferred bytecode class verification in managed runtime environments
CN110990019B (zh) * 2019-11-20 2023-05-02 腾讯音乐娱乐科技(深圳)有限公司 一种Java类分析方法、装置、存储介质及电子设备
US11403075B2 (en) 2019-11-25 2022-08-02 International Business Machines Corporation Bytecode verification using class relationship caching
FR3105854B1 (fr) * 2019-12-31 2024-07-19 St Microelectronics Rousset Système embarqué
FR3105853B1 (fr) 2019-12-31 2023-01-06 Proton World Int Nv Système embarqué
CN111770170B (zh) * 2020-06-29 2023-04-07 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质
CN112346734B (zh) * 2020-11-06 2024-06-25 杭州和利时自动化有限公司 一种编译验证方法、装置、设备及计算机可读存储介质
CN116635120A (zh) * 2020-12-23 2023-08-22 索尼互动娱乐有限责任公司 用于将传统代码转换为更新代码的系统和方法
US11829751B1 (en) * 2020-12-23 2023-11-28 Synopsys, Inc. System and method for automatically capturing source code and associated artifacts for static analysis
CN112732245B (zh) * 2021-01-11 2025-08-19 苏州众钺科技有限公司 跨平台应用的开发方法、装置及存储介质
CN113326046B (zh) * 2021-05-26 2023-09-26 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN113791770B (zh) * 2021-11-15 2022-06-21 北京壁仞科技开发有限公司 代码编译器、代码编译方法、代码编译系统和计算机介质
CN114281401B (zh) * 2021-12-23 2025-01-28 数字广东网络建设有限公司 基于字节码确定修改功能点的方法、装置、设备及介质
CN117130618B (zh) * 2023-06-13 2024-07-09 东信和平科技股份有限公司 智能卡可执行文件的增量编译方法、装置、设备
US20250077215A1 (en) * 2023-09-05 2025-03-06 Toshiba Tec Kabushiki Kaisha Computer and software update method

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182806A (en) * 1989-06-30 1993-01-26 Digital Equipment Corporation Incremental compiler for source-code development system
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
AU2002236916B2 (en) 2001-02-02 2008-12-11 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
US7243346B1 (en) * 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
US6715134B2 (en) * 2002-03-04 2004-03-30 Sun Microsystems, Inc. Method and apparatus to facilitate generating simulation modules for testing system designs
DE60324171D1 (de) * 2002-06-12 2008-11-27 Telelogic North America Inc Bereitstellung einer dynamischen modellcodeassoziativität
US7162628B2 (en) * 2002-07-23 2007-01-09 Cisco Technology, Inc. Method, system, apparatus and program product for temporary personalization of a computer terminal
US7246346B2 (en) * 2002-09-17 2007-07-17 Microsoft Corporation System and method for persisting dynamically generated code in a directly addressable and executable storage medium
US20040123278A1 (en) * 2002-12-23 2004-06-24 Murthi Nanja Persistent cache apparatus and methods
US7103723B2 (en) * 2003-02-25 2006-09-05 Intel Corporation Priority-based code cache management
US20040236824A1 (en) * 2003-05-23 2004-11-25 Millington Bradley D. Post-cache substitution
KR100518584B1 (ko) * 2003-07-12 2005-10-04 삼성전자주식회사 공유 라이브러리 시스템 및 상기 시스템 구축 방법
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7596554B2 (en) 2003-12-09 2009-09-29 International Business Machines Corporation System and method for generating a unique, file system independent key from a URI (universal resource indentifier) for use in an index-less voicexml browser caching mechanism
CA2465155C (en) 2004-04-21 2008-12-09 Ibm Canada Limited-Ibm Canada Limitee Recommendations for intelligent data caching
EP1669855A1 (en) 2004-12-02 2006-06-14 Deutsche Thomson-Brandt Gmbh Method for generating multi-language menus
US20060136907A1 (en) * 2004-12-20 2006-06-22 Microsoft Corporation Language-neutral and language-specific installation packages for software setup
US20060277250A1 (en) * 2005-06-03 2006-12-07 Sebastien Cherry Methods and systems for checking accessibility of web applications
US9009688B2 (en) * 2005-12-30 2015-04-14 Intel Corporation Type checking for object-oriented programming languages
US8225192B2 (en) * 2006-10-31 2012-07-17 Microsoft Corporation Extensible cache-safe links to files in a web page
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
US9460229B2 (en) * 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US8572065B2 (en) * 2007-11-09 2013-10-29 Microsoft Corporation Link discovery from web scripts
CN101226472A (zh) * 2008-02-03 2008-07-23 俞啟茂 一种遥控器代码生成方法
US8046779B2 (en) 2008-02-27 2011-10-25 Sap Ag Dynamic resolution of dependent components
KR100960111B1 (ko) 2008-07-30 2010-05-27 한국전자통신연구원 리버스 캐싱 프록시를 이용한 웹 기반의 역추적 시스템
US8752016B2 (en) * 2008-12-15 2014-06-10 Apple Inc. Converting JavaScript into a device-independent representation
US20100299661A1 (en) * 2009-05-25 2010-11-25 International Business Machines Corporation Load-Time Code Optimization In a Computing Environment
US20110087966A1 (en) * 2009-10-13 2011-04-14 Yaniv Leviathan Internet customization system
US8984009B2 (en) 2010-04-21 2015-03-17 Salesforce.Com, Inc. Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems
KR101689745B1 (ko) * 2010-09-06 2016-12-27 삼성전자주식회사 스크립트에 의한 동적 리소스 정보를 처리하는 웹 브라우징 시스템 및 방법
KR20120083803A (ko) * 2011-01-18 2012-07-26 삼성전자주식회사 가상머신을 위한 추가코드 생성장치 및 방법
US8880991B2 (en) * 2011-04-21 2014-11-04 Qualcomm Innovation Center, Inc. Methods and apparatus for improved browsing performance by precompilation of high-priority JavaScripts in a webpage and delaying the removal of corresponding compiled code
US9110751B2 (en) 2012-02-13 2015-08-18 Microsoft Technology Licensing, Llc Generating and caching software code

Also Published As

Publication number Publication date
CN104137057A (zh) 2014-11-05
MX336964B (es) 2016-02-08
BR112014019783A2 (pt) 2021-05-18
EP2815309B1 (en) 2020-10-07
EP2815309A1 (en) 2014-12-24
EP2815309A4 (en) 2015-11-04
CN104137057B (zh) 2017-10-24
AU2013219875A1 (en) 2014-08-28
US20130212567A1 (en) 2013-08-15
US10963233B2 (en) 2021-03-30
CA2861426C (en) 2020-07-07
KR101966754B1 (ko) 2019-04-08
RU2646329C2 (ru) 2018-03-02
MX2014009761A (es) 2014-09-12
JP6195849B2 (ja) 2017-09-13
CA2861426A1 (en) 2013-08-22
US9110751B2 (en) 2015-08-18
US20190108008A1 (en) 2019-04-11
WO2013122758A1 (en) 2013-08-22
AU2013219875B2 (en) 2018-05-31
BR112014019783A8 (pt) 2017-07-11
BR112014019783B1 (pt) 2021-11-23
US9940120B2 (en) 2018-04-10
US20150324183A1 (en) 2015-11-12
KR20140124774A (ko) 2014-10-27
JP2015507310A (ja) 2015-03-05

Similar Documents

Publication Publication Date Title
RU2014133160A (ru) Генерирование и кэширование кода программного обеспечения
JP2015507310A5 (ru)
US8359496B1 (en) Fault-resistant just-in-time compiler
Ainsworth et al. Software prefetching for indirect memory accesses
JP2014501412A5 (ru)
US8176253B2 (en) Leveraging transactional memory hardware to accelerate virtualization and emulation
US20130013965A1 (en) Microprocessor protected against stack overflow
BR112018002027A2 (pt) dispositivo de comunicação, e, método.
RU2015107557A (ru) Генерация собственного кода из кода на промежуточном языке для приложения
JP2005243004A5 (ru)
RU2014118856A (ru) Определение длины группы символьных данных, содержащей символ окончания
RU2015134172A (ru) Общая распаковка приложений для обнаружения вредоносных программ
GB201211422D0 (en) Memory protection
KR20190061075A (ko) 소프트웨어 재패키징 방지 방법 및 장치
CN103853565A (zh) 基于arm的固件升级方法和装置
RU2015145292A (ru) Управление доступом во время выполнения к интерфейсам прикладного программирования
RU2011101143A (ru) Способ и устройство для загрузки программного обеспечения
US20090006750A1 (en) Leveraging transactional memory hardware to accelerate virtualization and emulation
JP2016537755A5 (ru)
BR112019007600A2 (pt) seleção de recurso de energia externo dinâmico
MX2021013230A (es) Ejecucion de llamadas de sistema en espacio de direccion aislado en el nucleo de sistema operativo.
US20090265691A1 (en) Granular measurement of processor performance in executing sections of software code
US9971695B2 (en) Apparatus and method for consolidating memory access prediction information to prefetch cache memory data
JP2018152061A5 (ru)
US11029929B2 (en) Using emulation to improve startup time for just-in-time compilation