CN102402451B - 用户定义类型的编译时边界检查 - Google Patents

用户定义类型的编译时边界检查 Download PDF

Info

Publication number
CN102402451B
CN102402451B CN201110306863.8A CN201110306863A CN102402451B CN 102402451 B CN102402451 B CN 102402451B CN 201110306863 A CN201110306863 A CN 201110306863A CN 102402451 B CN102402451 B CN 102402451B
Authority
CN
China
Prior art keywords
bounds
user
code
bounds checking
type
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201110306863.8A
Other languages
English (en)
Chinese (zh)
Other versions
CN102402451A (zh
Inventor
D·S·哈维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of CN102402451A publication Critical patent/CN102402451A/zh
Application granted granted Critical
Publication of CN102402451B publication Critical patent/CN102402451B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

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)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
CN201110306863.8A 2010-09-28 2011-09-26 用户定义类型的编译时边界检查 Expired - Fee Related CN102402451B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/892,291 US8533695B2 (en) 2010-09-28 2010-09-28 Compile-time bounds checking for user-defined types
US12/892,291 2010-09-28

Publications (2)

Publication Number Publication Date
CN102402451A CN102402451A (zh) 2012-04-04
CN102402451B true CN102402451B (zh) 2014-07-23

Family

ID=45872016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110306863.8A Expired - Fee Related CN102402451B (zh) 2010-09-28 2011-09-26 用户定义类型的编译时边界检查

Country Status (8)

Country Link
US (1) US8533695B2 (enExample)
EP (1) EP2622466B1 (enExample)
JP (1) JP5893038B2 (enExample)
KR (1) KR101786156B1 (enExample)
CN (1) CN102402451B (enExample)
CA (1) CA2810986A1 (enExample)
ES (1) ES2733516T3 (enExample)
WO (1) WO2012047447A1 (enExample)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291393B2 (en) * 2007-08-20 2012-10-16 International Business Machines Corporation Just-in-time compiler support for interruptible code
US10705804B2 (en) * 2012-02-26 2020-07-07 Logistics Research Centre SIA Strongly typed metadata access in object oriented programming languages with reflection support
US9557974B2 (en) 2012-07-10 2017-01-31 Oracle International Corporation System and method for supporting compatibility checking for lambda expression
US8954939B2 (en) * 2012-12-31 2015-02-10 Microsoft Corporation Extending a development environment
US9098269B2 (en) 2013-01-04 2015-08-04 Microsoft Technology Licensing, Llc System and method to ensure resource access safety with immutable object types
US20140196015A1 (en) * 2013-01-04 2014-07-10 Microsoft Corporation Declaration of lifetime of resource reference
US9772828B2 (en) * 2014-04-22 2017-09-26 Oracle International Corporation Structural identification of dynamically generated, pattern-instantiation, generated classes
US9672015B2 (en) * 2015-09-28 2017-06-06 Semmle Limited Automatic determination of compiler configuration
US9684492B2 (en) 2015-09-28 2017-06-20 Semmle Limited Automatic determination of compiler configuration
CN110337650A (zh) * 2017-03-02 2019-10-15 三菱电机株式会社 信息处理装置和访问管理程序
US10706164B2 (en) * 2017-09-29 2020-07-07 Intel Corporation Crypto-enforced capabilities for isolation
CN108459873B (zh) * 2018-03-05 2021-09-24 中国人民解放军国防科技大学 一种提高开源代码注释率及注释质量的方法
US11023214B2 (en) * 2018-07-30 2021-06-01 Roger James Poon System and method for eliminating runtime out-of-bounds errors and exceptions
KR102322965B1 (ko) 2020-03-23 2021-11-09 주식회사 티맥스 소프트 Transpiler를 통하여 전환된 언어와 source 언어간 범용 런타임 검증 시스템
US10963228B1 (en) * 2020-12-22 2021-03-30 Temper Systems, Inc. Preventing garbage object accumulation on minimal runtimes
US12487824B2 (en) * 2021-09-21 2025-12-02 Intel Corporation Immediate offset of load store and atomic instructions
US20230315412A1 (en) * 2022-03-30 2023-10-05 Microsoft Technology Licensing, Llc Scalable behavioral interface specification checking
US20240104013A1 (en) * 2022-09-28 2024-03-28 Intel Corporation Deterministic adjacent overflow detection for slotted memory pointers
CN118113291A (zh) * 2022-11-30 2024-05-31 华为技术有限公司 一种内存安全管理方法及设备
US12450045B2 (en) * 2023-02-13 2025-10-21 Oracle International Corporation Modeling java source code in a symbolic description language
US12436749B2 (en) * 2023-03-31 2025-10-07 Veracode, Inc. Inferring type definitions of user-defined types of variables in application program code

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343375B1 (en) * 1998-04-24 2002-01-29 International Business Machines Corporation Method for optimizing array bounds checks in programs
CN1409210A (zh) * 2001-09-20 2003-04-09 松下电器产业株式会社 处理器、编译装置与编译方法、存储介质
CN1906578A (zh) * 2003-11-14 2007-01-31 英特尔公司 用于自动线程划分编译器的装置和方法
CN101542437A (zh) * 2005-12-07 2009-09-23 微软公司 软件事务性存储器操作的优化

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4584666A (en) 1984-06-21 1986-04-22 Motorola, Inc. Method and apparatus for signed and unsigned bounds check
US5075845A (en) * 1989-12-22 1991-12-24 Intel Corporation Type management and control in an object oriented memory protection mechanism
US5644709A (en) 1994-04-21 1997-07-01 Wisconsin Alumni Research Foundation Method for detecting computer memory access errors
US5694539A (en) * 1994-08-10 1997-12-02 Intrinsa Corporation Computer process resource modelling method and apparatus
DE69713400T2 (de) 1996-01-24 2002-10-31 Sun Microsystems, Inc. Prozessor mit Bereichsüberprüfung bei Matrixzugriffen
JPH10275087A (ja) * 1997-03-28 1998-10-13 Fujitsu Ltd コンパイル装置
US6149318A (en) 1997-04-15 2000-11-21 Samuel C. Kendall Link-time and run-time error detection, and program instrumentation
JP3280332B2 (ja) * 1998-07-10 2002-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ループに対するバージョニングを実行する方法及び装置、配列レンジ・チェックに関する情報をベーシック・ブロック内において収集する方法及び装置、配列レンジ・チェックに関する情報を変更する方法、配列レンジ・チェック最適化方法、配列レンジ・チェックのためのコードを生成する方法、不要配列レンジ・チェック除去方法及び装置、配列レンジ・チェックを選択する方法、配列レンジ・チェック変更方法、配列レンジ・チェック収集方法、及び配列レンジ・チェック取扱判断方法
US7260817B2 (en) * 1999-07-09 2007-08-21 International Business Machines Corporation Method using array range check information for generating versioning code before a loop for execution
WO2005029241A2 (en) 2003-09-15 2005-03-31 Plum Thomas S Automated safe secure techniques for eliminating
US7448029B2 (en) * 2004-04-26 2008-11-04 International Business Machines Corporation Modification of array access checking in AIX
US7325007B2 (en) * 2005-03-07 2008-01-29 Microsoft Corporation System and method for supporting non-native data types in a database API
US7650346B2 (en) * 2005-04-01 2010-01-19 Microsoft Corporation User-defined type consistency checker
US8484613B2 (en) * 2010-01-28 2013-07-09 Synopsys, Inc. Optimizing bounds checking using computer algebra

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343375B1 (en) * 1998-04-24 2002-01-29 International Business Machines Corporation Method for optimizing array bounds checks in programs
CN1409210A (zh) * 2001-09-20 2003-04-09 松下电器产业株式会社 处理器、编译装置与编译方法、存储介质
CN1906578A (zh) * 2003-11-14 2007-01-31 英特尔公司 用于自动线程划分编译器的装置和方法
CN101542437A (zh) * 2005-12-07 2009-09-23 微软公司 软件事务性存储器操作的优化

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ABCD: eliminating array bounds checks on demand;Rastislav Bodík等;《Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation》;20000530;第101-104页 *
Rastislav Bodík等.ABCD: eliminating array bounds checks on demand.《Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation》.2000,第321-333页.
王业君等.缓冲区溢出攻击原理与防范的研究.《计算机应用研究 》.2005,第22卷(第10期),第101-104页.
缓冲区溢出攻击原理与防范的研究;王业君等;《计算机应用研究 》;20051031;第22卷(第10期);第321-333页 *

Also Published As

Publication number Publication date
EP2622466A1 (en) 2013-08-07
US20120079465A1 (en) 2012-03-29
KR20130101037A (ko) 2013-09-12
ES2733516T3 (es) 2019-11-29
EP2622466B1 (en) 2019-04-10
KR101786156B1 (ko) 2017-10-16
EP2622466A4 (en) 2014-10-01
US8533695B2 (en) 2013-09-10
WO2012047447A1 (en) 2012-04-12
CA2810986A1 (en) 2012-04-12
CN102402451A (zh) 2012-04-04
JP2013539130A (ja) 2013-10-17
JP5893038B2 (ja) 2016-03-23

Similar Documents

Publication Publication Date Title
CN102402451B (zh) 用户定义类型的编译时边界检查
US10152309B2 (en) Cross-library framework architecture feature sets
US10747511B2 (en) Compiler optimization of coroutines
CN106133685B (zh) 对运行时行为的基于分层指令的管理
CN106716361B (zh) 用于运行时例程冗余跟踪的编译器高速缓存
US9389890B2 (en) Hierarchical directives-based management of runtime behaviors
US9817643B2 (en) Incremental interprocedural dataflow analysis during compilation
CN107273109B (zh) 对源代码建模的方法和系统以及使用数据模型的方法
US20250199785A1 (en) Compilation methods, compilers, and wasm virtual machines
WO2024193164A1 (zh) 一种代码处理方法及装置
US11972237B1 (en) Member invocation declarative interception

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150422

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150422

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140723

CF01 Termination of patent right due to non-payment of annual fee