WO2011084875A3 - Creating inferred symbols from code usage - Google Patents

Creating inferred symbols from code usage Download PDF

Info

Publication number
WO2011084875A3
WO2011084875A3 PCT/US2010/062651 US2010062651W WO2011084875A3 WO 2011084875 A3 WO2011084875 A3 WO 2011084875A3 US 2010062651 W US2010062651 W US 2010062651W WO 2011084875 A3 WO2011084875 A3 WO 2011084875A3
Authority
WO
WIPO (PCT)
Prior art keywords
symbols
inferred
symbol
code
appearance
Prior art date
Application number
PCT/US2010/062651
Other languages
French (fr)
Other versions
WO2011084875A2 (en
Inventor
Karen Liu
Kevin Pilch-Bisson
Original Assignee
Microsoft Corporation
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 Microsoft Corporation filed Critical Microsoft Corporation
Priority to EP10842770.9A priority Critical patent/EP2521967B1/en
Priority to CN201080060704.8A priority patent/CN102696012B/en
Priority to ES10842770.9T priority patent/ES2674140T3/en
Priority to HK13101830.7A priority patent/HK1174709B/en
Publication of WO2011084875A2 publication Critical patent/WO2011084875A2/en
Publication of WO2011084875A3 publication Critical patent/WO2011084875A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3624Debugging of software by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

When writing code, data structures that include inferred symbols are created based on usage of undefined symbols. As the user continues writing code, code model can be updated to represent updated information based on a learning model. Data structures including inferred symbols can be used by software development tools to provide developer help for symbols that are not yet created or are not yet bound. Inferred symbols can be visually distinguishable making the appearance of the inferred symbol information differ from actual symbol information. The appearance of information based on inferred symbols can be included within tools by activating a particular mode in a programming environment. Conversion of the inferred symbol to a real symbol may trigger the automatic compiler-generation of additional source code by a background compiler. Inferred symbols may be converted to actual symbols by activation of an option to make an inferred symbol a real symbol.
PCT/US2010/062651 2010-01-06 2010-12-31 Creating inferred symbols from code usage WO2011084875A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10842770.9A EP2521967B1 (en) 2010-01-06 2010-12-31 Creating inferred symbols from code usage
CN201080060704.8A CN102696012B (en) 2010-01-06 2010-12-31 Creating inferred symbols from code usage
ES10842770.9T ES2674140T3 (en) 2010-01-06 2010-12-31 Creation of inferred symbols from the use of code
HK13101830.7A HK1174709B (en) 2010-01-06 2010-12-31 Creating inferred symbols from code usage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/652,758 2010-01-06
US12/652,758 US9298427B2 (en) 2010-01-06 2010-01-06 Creating inferred symbols from code usage

Publications (2)

Publication Number Publication Date
WO2011084875A2 WO2011084875A2 (en) 2011-07-14
WO2011084875A3 true WO2011084875A3 (en) 2011-10-27

Family

ID=44225460

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2010/062651 WO2011084875A2 (en) 2010-01-06 2010-12-31 Creating inferred symbols from code usage

Country Status (5)

Country Link
US (1) US9298427B2 (en)
EP (1) EP2521967B1 (en)
CN (1) CN102696012B (en)
ES (1) ES2674140T3 (en)
WO (1) WO2011084875A2 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473911B1 (en) * 2010-07-23 2013-06-25 Xilinx, Inc. Documentation generation from a computer readable symbolic representation
EP2450794B1 (en) 2010-10-22 2018-08-29 Orange Method for allowing distributed running of an application and related device and inference engine
EP2450792B1 (en) * 2010-10-22 2020-01-15 Orange Method for allowing distributed running of an application and related pre-processing unit
US9026948B2 (en) * 2011-06-29 2015-05-05 Microsoft Technology Licensing, Llc Multi-faceted relationship hubs
US9098299B2 (en) * 2011-09-16 2015-08-04 Facebook, Inc. Run time incremental compilation of script code
US9195442B2 (en) * 2012-07-10 2015-11-24 Oracle International Corporation System and method for compiling lambda expression in a programming language environment
US8954939B2 (en) * 2012-12-31 2015-02-10 Microsoft Corporation Extending a development environment
US9304762B2 (en) 2013-03-01 2016-04-05 Apple Inc. Automatically customizing a computer-executable application at runtime
US9563412B2 (en) 2013-03-13 2017-02-07 Microsoft Technology Licensing, Llc. Statically extensible types
US9639335B2 (en) 2013-03-13 2017-05-02 Microsoft Technology Licensing, Llc. Contextual typing
US9696974B2 (en) * 2013-03-13 2017-07-04 Microsoft Technology Licensing, Llc. Graph-based model for type systems
US9652207B2 (en) 2013-03-13 2017-05-16 Microsoft Technology Licensing, Llc. Static type checking across module universes
US9081892B2 (en) * 2013-03-14 2015-07-14 Fujitsu Limited Software verification
US9244658B2 (en) * 2013-06-04 2016-01-26 Microsoft Technology Licensing, Llc Multi-step auto-completion model for software development environments
US20150347352A1 (en) * 2014-06-02 2015-12-03 Microsoft Technology Licensing, Llc Form preview in a development environment
US11188308B2 (en) * 2014-07-23 2021-11-30 Apple Inc. Interactive code editing
US10120679B2 (en) * 2015-07-10 2018-11-06 Google Llc Automatic imports and dependencies in large-scale source code repositories
US10489122B1 (en) * 2015-09-02 2019-11-26 Devin Abbott Inline text editor elements as an abstraction layer for graphical code editing
US9672030B2 (en) 2015-10-14 2017-06-06 International Business Machines Corporation Generating comprehensive symbol tables for source code files
US10001978B2 (en) 2015-11-11 2018-06-19 Oracle International Corporation Type inference optimization
US10885801B2 (en) * 2016-05-24 2021-01-05 Tangible Play, Inc. Virtualized tangible programming
RU2016137177A (en) 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн IMPROVED TRANSFORMATION OF SOURCE PROGRAMMING LANGUAGE CODE
RU2016137176A (en) * 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн LINKING THE TRANSFORMED SOURCE CODE TO THE ORIGINAL SOURCE CODE BY METADATA
US10606566B2 (en) * 2017-06-03 2020-03-31 Apple Inc. Integration of learning models into a software development system
EP3588257A1 (en) * 2018-06-26 2020-01-01 ABB Schweiz AG Adaptive visualization of device symbols by computers that control a technical system
US11687830B2 (en) * 2019-05-31 2023-06-27 Apple Inc. Integration of learning models into a software development system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200534A1 (en) * 2002-04-22 2003-10-23 Kuzmin Aleksandr M. Mechanism for reformatting a simple source code statement into a compound source code statement
US20060004528A1 (en) * 2004-07-02 2006-01-05 Fujitsu Limited Apparatus and method for extracting similar source code
US20070277163A1 (en) * 2006-05-24 2007-11-29 Syver, Llc Method and tool for automatic verification of software protocols
US20090172650A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation System and method for comparing partially decompiled software

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US6094529A (en) * 1995-09-19 2000-07-25 Jeffries; Robin Method, apparatus and computer program product for linking stack messages to relevant information
US6684388B1 (en) * 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US7080365B2 (en) 2001-08-17 2006-07-18 Sun Microsystems, Inc. Method and apparatus for simulation system compiler
US20040230951A1 (en) 2003-04-02 2004-11-18 Scandura Joseph M. Method for Building Highly Adaptive Instruction Based on the Structure as Opposed to the Semantics of Knowledge Representations
GB0315165D0 (en) * 2003-05-02 2003-08-06 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
US7165238B2 (en) 2003-06-06 2007-01-16 Intentional Software Corporation Method and system for organizing and manipulating nodes by category in a program tree
JP2005038212A (en) * 2003-07-15 2005-02-10 Nippon Telegr & Teleph Corp <Ntt> Program conversion method and apparatus, program conversion program, and storage medium storing program conversion program
US7496906B2 (en) * 2004-03-31 2009-02-24 International Business Machines Corporation Evaluation of a code segment
GB0416867D0 (en) * 2004-07-29 2004-09-01 Ibm Automatic content completion of valid values for method argument variables
US8600728B2 (en) 2004-10-12 2013-12-03 University Of Southern California Training for a text-to-text application which uses string to tree conversion for training and decoding
US20060277525A1 (en) * 2005-06-06 2006-12-07 Microsoft Corporation Lexical, grammatical, and semantic inference mechanisms
US7730448B2 (en) * 2005-08-11 2010-06-01 Microsoft Corporation Layered type systems
US20070044066A1 (en) * 2005-08-19 2007-02-22 Microsoft Corporation Embedded multi-language programming
US8473971B2 (en) * 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
US8327343B2 (en) * 2005-10-20 2012-12-04 Cisco Technology, Inc. Method and system for optimizing source code
US7958493B2 (en) * 2006-01-20 2011-06-07 Kevin Edward Lindsey Type inference system and method
US7954059B2 (en) 2006-07-24 2011-05-31 National Instruments Corporation Automatic conversion of text-based code having function overloading and dynamic types into a graphical program for compiled execution
US20080141230A1 (en) 2006-12-06 2008-06-12 Microsoft Corporation Scope-Constrained Specification Of Features In A Programming Language
EP2135163B1 (en) 2007-04-11 2018-08-08 Apple Inc. Data parallel computing on multiple processors
US8799856B2 (en) * 2007-06-12 2014-08-05 International Business Machines Corporation System and method for automatically declaring variables
US20100050101A1 (en) * 2008-08-21 2010-02-25 Palm, Inc. Converting Information Objects
US8418155B2 (en) 2009-02-10 2013-04-09 International Business Machines Corporation Generating parallel SIMD code for an arbitrary target architecture
US20100235730A1 (en) * 2009-03-13 2010-09-16 Microsoft Corporation Consume-first mode text insertion
US9213541B2 (en) * 2009-04-17 2015-12-15 ArtinSoft Corporation, S.A. Creation, generation, distribution and application of self-contained modifications to source code
US9274770B2 (en) * 2009-06-22 2016-03-01 Oracle America, Inc. Fault tolerant compilation with automatic error correction
US8448142B2 (en) * 2009-08-25 2013-05-21 International Business Machines Corporation Incremental runtime compliance validation of renderable objects
US8813027B2 (en) * 2010-04-14 2014-08-19 Microsoft Corporation Static type checking against external data sources
US20110271258A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Software Development Tool
US20110271250A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Software Development Tool
US8549502B2 (en) * 2010-06-21 2013-10-01 Microsoft Corporation Compiler with user-defined type inference rules
US9696974B2 (en) * 2013-03-13 2017-07-04 Microsoft Technology Licensing, Llc. Graph-based model for type systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200534A1 (en) * 2002-04-22 2003-10-23 Kuzmin Aleksandr M. Mechanism for reformatting a simple source code statement into a compound source code statement
US20060004528A1 (en) * 2004-07-02 2006-01-05 Fujitsu Limited Apparatus and method for extracting similar source code
US20070277163A1 (en) * 2006-05-24 2007-11-29 Syver, Llc Method and tool for automatic verification of software protocols
US20090172650A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation System and method for comparing partially decompiled software

Also Published As

Publication number Publication date
ES2674140T3 (en) 2018-06-27
WO2011084875A2 (en) 2011-07-14
EP2521967A2 (en) 2012-11-14
US20110167404A1 (en) 2011-07-07
EP2521967B1 (en) 2018-04-25
CN102696012B (en) 2014-10-22
CN102696012A (en) 2012-09-26
HK1174709A1 (en) 2013-06-14
US9298427B2 (en) 2016-03-29
EP2521967A4 (en) 2014-08-06

Similar Documents

Publication Publication Date Title
WO2011084875A3 (en) Creating inferred symbols from code usage
CA2819008A1 (en) Method and system for displaying selectable autocompletion suggestions and annotations in mapping tool
WO2011003628A3 (en) System and method for generating contextual behaviours of a mobile robot
WO2010068786A3 (en) Subgraph execution control in a graphical modeling environment
WO2011087569A3 (en) Design time debugging
WO2008027590A3 (en) Specifying implementations of code for code generation from a model
WO2009045094A3 (en) Customizable application system
WO2005036391A3 (en) Visual programming system and method
WO2011013945A3 (en) Mobile terminal and operation method for the same
WO2011119375A3 (en) Chore and rewards tracker
WO2011104367A3 (en) Software application development tool
GB2489638A (en) System and method for performing an adaptive drilling operation
GB201116221D0 (en) Autonomous vehicle and task modelling
WO2009149219A3 (en) Appliance development toolkit
WO2009120595A3 (en) Apparatus and methods for widget intercommunication in a wireless communication environment
WO2012054197A3 (en) Coordinated upgrades in distributed systems
WO2011025239A3 (en) Method for providing a ui using motions, and device adopting the method
EP2577460A4 (en) Generating text manipulation programs using input-output examples
WO2007076098A3 (en) Digital effects analysis in modeling environments
BRPI0919132A2 (en) code generated by storage execution.
WO2007084760A3 (en) Identifying design issues in electronic forms
WO2010047794A3 (en) Environmental data collection
MX338923B (en) Systems and methods for dynamically developing wellbore plans with a reservoir simulator.
IL178922A0 (en) Modeling interactions with a computer system
WO2012092117A3 (en) Converting desktop applications to web applications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10842770

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010842770

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE