KR960035260A - 소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치 - Google Patents
소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR960035260A KR960035260A KR1019960009899A KR19960009899A KR960035260A KR 960035260 A KR960035260 A KR 960035260A KR 1019960009899 A KR1019960009899 A KR 1019960009899A KR 19960009899 A KR19960009899 A KR 19960009899A KR 960035260 A KR960035260 A KR 960035260A
- Authority
- KR
- South Korea
- Prior art keywords
- macro
- error
- location
- program
- source
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
소프트웨어의 컴파일시의 에러 메시지를 보다 유용하게 생성시키기 위한 방법과 장치가 제공된다. 이 소프트웨어 프로그램을 매크로 정의 및 이 매크로의 호출을 포함한다. 상기 매크로는 컴파일작업시 확장된다. 본 발명은 매크로 확장의 히스토리를 세이브하는 몇몇 테이블을 생성한다. 만약 매크로의 컴파일시 에러가 발생되면 본 발명은 세이브된 히스토리 정보를 사용하여, 특히 매크로 확장의 히스토리 및 매크로의 원시 프로그램의 에러의 위치를 식별하는 에러 메시지를 프린트한다. 본 발명은 중첩된 매크로 호출의 다수의 매크로 히스토리를 프린트할 수 있다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 블럭도이다. 제2도는 제1도의 컴퓨터 시스템의 메모리에 저장된 3개 테이블의 포맷을 나타낸다. 제3(a), 3(b), 3(c) 및 3(d)도는 제2도의 소스 위치 테이블내 엔트리들의 상세한 포멧을 나타낸다. 제4도는 원시 프로그램의 1예이다.
Claims (20)
- 컴퓨터 시스템에 의해 수행되는, 원시 프로그램을 목적 프로그램으로 변환하기 위한 방법에 있어서, 상기 방법은, 원시 프로그램이 매크로정의 및 이 매크로 정의에 규정된 매크로를 호출하는 명령을 포함하고, 컴파일 단계가 매크로를 호출하는 명령을 확장하는 부단계를 포함하는, 목적 프로그램을 생성하기 위해 원시 프로그램을 컴파일하는 단계; 매크로 정의의 원시 프로그램의 위치와 매크로를 호출하는 명령이 세이브될 수 있도록, 매크로 확장의 부단계를 나타내는 히스토리 정보를 메모리에서 생성하는 단계; 상기 컴파일단계 동안 매크로가 확장되었을 때 에러가 발생되었는지를 결정하는 단계; 및 에러 메시지가 특히 매크로 정의의 원시 프로그램내의 에러의 위치 및 매크로를 호출하는 명령의 원시 프로그램내의 위치를 식별할 수 있도록 상기 히스토리 정보에 따라 에러가 발생된 경우 에러 메시지를 프린트하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 프린트 단계는 또한 컴파일 단계시 매크로가 확장되었을 때 발생되는 에러의 형태를 식별하는 메시지를 프린트하는 단계를 더 포함하는 방법.
- 제1항에 있어서, 상기 원시 프로그램이 C 프로그램 언어로 기록되는 방법.
- 제1항에 있어서, 상기 히스토리 생성 단계는 원시 프로그램의 문자 스트링이 단일의, 특유한 토큰 번호로 표시된 히스토리 정보를 생성하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 결정 단계가 컴파일 에러의 위치를 결정하는 단계를 포함하고, 상기 컴파일 에러의 위치가 메모리의 테이블에 저장된 단일의, 특유한 토큰 번호를 표시되는 방법.
- 제1항에 있어서, 상기 히스토리 정보가 컴파일 단계시 수행되는 매크로 확장의 소스 및 수신지를 저장하는 트리 데이타 구조를 포함하는 방법.
- 제1항에 있어서, 상기 히스토리 정보는 메모리의 수신지 테이블 및 소스 테이블에 저장되는 방법.
- 제7항에 있어서, 상기 수신지 테이블 및 소스 테이블은 KN바이트의 메모리 (단, K는 9 내지 12이고 N은 원시 프로그램에 포함된 매크로 호출의 수)를 필요로 하는 방법.
- 제1항에 있어서, 상기 원시 프로그램에 있어서의 토큰의 위치는 소스 위치 테이블에 저장하는 방법.
- 제9항에 있어서, 상기 소스 위치 테이블은 KN 바이트의 메모리 (단, K는 0.5 내지 1이고 N은 원시 프로그램의 원래 소스 토큰의 수)를 필요로 하는 방법.
- 제1항에 있어서, 상기 프린트 단계는, 특히 매크로 정의의 파일명, 라인번호 및 에러의 위치와 매크로를 호출하는 명령의 파일명, 라인번호 및 위치를 식별하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 원시 프로그램은 제2매크로 정의 및 이 제2매크로 정의에 규정된 제2매크로를 호출하는 중첩된 명령을 포함하고, 상기 중첩된 명령은 제1매크로 정의내에 있으며; 상기 컴파일 단계는 제1 및 제2매크로를 호출하는 명령을 확장하는 부단계를 포함하고; 상기 히스토리 생성 단계는 상기 제1 및 제2매크로 정의와 상기 매크로들을 호출하는 제1 및 제2명령들의 원시 프로그램에 있어서의 위치들을 세이브하며;상기 결정단계는 제2매크로가 컴파일 단계시 확장되었을 때 에러가 발생되었는지를 결정하는 단계를 포함하고; 상기 프린트 단계는, 특히 에러 메시지가 상기 제2매크로 정의의 원시 프로그램내의 에러의 위치 및 상기 제1 및 제2명령의 위치를 식별할 수 있도록, 히스토리 정보에 따라 에러가 발생된 경우 에러 메시지를 프린트하는 단계를 포함하는 방법.
- 원시 프로그램을 저장하는 메모리; 목적 프로그램을 생성하기 위해, 매크로 정의 및 이 매크로 정의에 규정된 매크로를 호출하는 명령을 포함하는 원시 프로그램을 컴파일하는 메모리에 결합하며, 또한 상기 매크로를 호출하는 명령들을 확장하는 컴파일러부; 상기 메모리에 저장된 히스토리 정보를 생성하는 메모리에 결합된 히스토리 생성기로서, 상기 히스토리 정보는 매크로의 확장을 나타내며, 이에 따라 매크로 정의 및 매크로를 호출하는 명령의 원시 프로그램의 위치가 세이브되는, 히스토리 생성기; 상기 컴파일부에 결합되고, 컴파일시 매크로가 확장될 때 에러의 발생여부를 결정하는 결정부; 및 에러 메시지가 특히 매크로 정의의 원시 프로그램내의 에러의 위치 및 매크로를 호출하는 명령의 원시 프로그램내의 위치를 식별할 수 있도록, 상기 히스토리 정보에 따라 컴파일시 에러가 발생된 경우 에러 메시지를 프린트하는 프린트부를 포함하는, 원시 프로그램을 목적 프로그램으로 변환하는 장치.
- 제13항에 있어서, 상기 프린트부는 또한 컴파일시 매크로가 확장되었을 때 발생되는 에러의 형태를 식별하는 메시지를 프린트하는 장치.
- 제13항에 있어서, 상기 히스토리 생성기는 원시 프로그램의 문자 스트링이 단일의, 특유한 토큰 번호로 표시된 히스토리 정보를 생성하는 장치.
- 제13항에 있어서, 상기 결정부는 컴파일 에러의 위치를 결정하는 단계를 포함하고 상기 컴파일 에러의 위치가 메모리의 테이블에 저장된 단일의, 특유한 토큰 번호로 표시되는 장치.
- 제13항에 있어서, 상기 원시 프로그램의 토큰들의 위치가 상기 메모리의 소스 위치 테이블에 저장되는 장치.
- 제13항에 있어서, 상기 히스토리 정보가 컴파일시 수행되는 매크로 확장의 소스 및 수신지를 저장하는 트리 데이타 구조를 포함하는 장치.
- 제13항에 있어서, 상기 프린트부는, 특히 매크로 정의에 있어서의 파일명, 라인번호 및 에러의 위치와, 매크로를 호출하는 명령의 파일명, 라인 번호 및 위치를 식별하는 에러 메시지를 프린트하는 장치.
- 제13항에 있어서, 상기 원시 프로그램은 중첩된 매크로 호출을 포함하고; 상기 컴파일러부는 상기 중첩된 매크로 호출을 확장하며; 상기 히스토리 생성기는 상기 중첩된 매크로 호출의 원시 프로그램의 위치들을세이브하고; 상기 결정부는 상기 중첩된 매크로 호출이 컴파일시 확장되었을 때 에러가 발생되었는지를 결정하며; 상기 프린트부는, 에러 메시지가 특히 상기 중첩된 메크로호출의 원시 프로그램내의 에러의 위치를 식별할 수 있도록, 히스토리 정보에 따라, 에러가 발생된 경우 에러 메시지를 프린트하는 장치.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/410,672 US5701487A (en) | 1995-03-27 | 1995-03-27 | Method and apparatus for displaying locations of errors detected inside software macro calls |
US08/410,672 | 1995-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR960035260A true KR960035260A (ko) | 1996-10-24 |
Family
ID=23625725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960009899A KR960035260A (ko) | 1995-03-27 | 1996-03-27 | 소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5701487A (ko) |
EP (1) | EP0735466A3 (ko) |
JP (1) | JPH08314728A (ko) |
KR (1) | KR960035260A (ko) |
CA (1) | CA2170939A1 (ko) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903859A (en) * | 1996-03-27 | 1999-05-11 | Dell Usa, L.P. | Dynamic multi-lingual software module system |
US5948107A (en) * | 1997-05-28 | 1999-09-07 | Intel Corporation | Method of handling errors in complex inheritance hierarchies |
US5978587A (en) * | 1997-11-13 | 1999-11-02 | Unisys Corp. | Method for propagating source code locations into objects in a compiler |
US5978586A (en) * | 1997-11-26 | 1999-11-02 | Unisys Corp. | Method for tracking changes in source locations in a compiler |
US6219828B1 (en) * | 1998-09-30 | 2001-04-17 | International Business Machines Corporation | Method for using two copies of open firmware for self debug capability |
US6654953B1 (en) * | 1998-10-09 | 2003-11-25 | Microsoft Corporation | Extending program languages with source-program attribute tags |
BR9914553A (pt) * | 1998-10-16 | 2001-06-26 | Computer Ass Think Inc | Método para a determinação de diferenças entre dois ou mais modelos |
US6353924B1 (en) * | 1999-02-08 | 2002-03-05 | Incert Software Corporation | Method for back tracing program execution |
US6381736B1 (en) * | 1999-10-12 | 2002-04-30 | Cisco Technology, Inc. | Method for compile-time type-checking of arguments for externally-specified format strings |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US6715109B1 (en) | 2000-02-04 | 2004-03-30 | International Business Machines Corporation | Method, computer program product, and system for making standard stream data accessible that would otherwise be lost in application programs |
US6708333B1 (en) * | 2000-06-23 | 2004-03-16 | Microsoft Corporation | Method and system for reporting failures of a program module in a corporate environment |
US8032886B2 (en) * | 2000-11-22 | 2011-10-04 | Microsoft Corporation | Tracking asynchronous execution of program using hierarchical structure of objects |
US6813707B1 (en) * | 2001-03-23 | 2004-11-02 | Cisco Technology Inc. | Enhancing instruction execution using built-in macros |
US6931627B2 (en) * | 2001-05-16 | 2005-08-16 | Sun Microsystems, Inc. | System and method for combinatorial test generation in a compatibility testing environment |
US20030088810A1 (en) * | 2001-11-02 | 2003-05-08 | Sun Microsystems, Inc. | Methods and apparatus for determining software component sizes associated with errors |
US7337438B1 (en) | 2003-03-31 | 2008-02-26 | Applied Micro Circuits Corporation | Macros to support structures for an assembler that does not support structures |
US7571431B2 (en) * | 2003-04-29 | 2009-08-04 | Microsoft Corporation | Processing macro information and displaying via GUI in different tools |
EP1652074A4 (en) * | 2003-07-11 | 2008-08-13 | Computer Ass Think Inc | ADJUNCTION TO A TOOL FOR MODELING OBJECTS DEFINED BY A USER |
US7971182B1 (en) * | 2006-05-09 | 2011-06-28 | Vmware, Inc. | Application environment specifications for provisioning application specific runtime environments using undefined symbols |
KR20080045545A (ko) * | 2006-11-20 | 2008-05-23 | 삼성전자주식회사 | 조건부 영역을 전처리하는 방법 |
US8863148B1 (en) * | 2007-01-09 | 2014-10-14 | Marvell International Ltd. | Small debug print |
US8347263B1 (en) | 2007-05-09 | 2013-01-01 | Vmware, Inc. | Repository including installation metadata for executable applications |
US8219987B1 (en) | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US11262996B2 (en) | 2007-05-09 | 2022-03-01 | Vmware, Inc. | Repository including exclusion list |
US8001083B1 (en) | 2007-05-09 | 2011-08-16 | Vmware, Inc. | Repository including version management |
US7971047B1 (en) | 2007-09-10 | 2011-06-28 | Vmware, Inc. | Operating system environment and installation |
US9015180B1 (en) | 2007-05-09 | 2015-04-21 | Vmware, Inc. | Repository including file identification |
US8577937B1 (en) | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US8171141B1 (en) | 2009-04-02 | 2012-05-01 | Vmware, Inc. | Provisioning system including stack manager |
US8473902B2 (en) * | 2009-08-07 | 2013-06-25 | International Business Machines Corporation | Identifying source code elements for refactoring |
JP5385103B2 (ja) * | 2009-11-24 | 2014-01-08 | 株式会社野村総合研究所 | マクロ展開方法およびプリプロセッサ |
JP5385102B2 (ja) * | 2009-11-24 | 2014-01-08 | 株式会社野村総合研究所 | ソース解析プログラム、プリプロセッサ、レキサ、および構文木解析プログラム |
US8863094B2 (en) | 2010-05-18 | 2014-10-14 | International Business Machines Corporation | Framework for a software error inject tool |
CN102855306B (zh) * | 2012-08-21 | 2015-04-15 | 飞天诚信科技股份有限公司 | 一种解析源文件的方法和装置 |
US10614432B2 (en) * | 2016-01-29 | 2020-04-07 | Ncr Corporation | Channel integration processing |
US10176104B2 (en) * | 2016-09-30 | 2019-01-08 | Arm Limited | Instruction predecoding |
US20240248690A1 (en) * | 2023-01-25 | 2024-07-25 | International Business Machines Corporation | Porting at least one programming language package to a target operating system platform |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4931928A (en) * | 1988-11-09 | 1990-06-05 | Greenfeld Norton R | Apparatus for analyzing source code |
US4916810A (en) * | 1989-05-12 | 1990-04-17 | Amp Incorporated | Method and apparatus for terminating wires to terminals |
JPH03126133A (ja) * | 1989-10-11 | 1991-05-29 | Matsushita Electric Ind Co Ltd | コンパイラ処理方法 |
US5293629A (en) * | 1990-11-30 | 1994-03-08 | Abraxas Software, Inc. | Method of analyzing computer source code |
-
1995
- 1995-03-27 US US08/410,672 patent/US5701487A/en not_active Expired - Lifetime
-
1996
- 1996-03-04 CA CA002170939A patent/CA2170939A1/en not_active Abandoned
- 1996-03-13 EP EP96103946A patent/EP0735466A3/en not_active Withdrawn
- 1996-03-27 JP JP8097754A patent/JPH08314728A/ja active Pending
- 1996-03-27 KR KR1019960009899A patent/KR960035260A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
JPH08314728A (ja) | 1996-11-29 |
CA2170939A1 (en) | 1996-09-28 |
EP0735466A3 (en) | 1997-05-02 |
US5701487A (en) | 1997-12-23 |
EP0735466A2 (en) | 1996-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960035260A (ko) | 소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치 | |
JP2666847B2 (ja) | 異種言語間連絡方式 | |
US7171649B1 (en) | Optimizing safe downcasting in an object-oriented programming language | |
JPH1083289A (ja) | プログラミング・エイド | |
US5150474A (en) | Method for transferring arguments between object programs by switching address modes according to mode identifying flag | |
JP3682050B2 (ja) | 組込みソフトウェア開発装置 | |
JP2672968B2 (ja) | デバッグ用ソースリスト出力処理方式 | |
JPH0520093A (ja) | モジユールのコンパイル方法およびコンパイル装置 | |
JP2827724B2 (ja) | プログラムデバッグ処理方法 | |
JP2977642B2 (ja) | Fortranコンパイル処理装置 | |
JP3417960B2 (ja) | 文章校正支援方法および装置 | |
JPH11272512A (ja) | メモリ管理装置および記録媒体 | |
KR930004861A (ko) | 정보처리 시스템 | |
JP2001125793A (ja) | コンパイラシステム及びコンパイル方法並びに記録媒体 | |
JP2000132405A (ja) | インライン展開処理装置及び方法 | |
JP2585790B2 (ja) | 複数コード系に対応するコンパイル処理方式 | |
JPS62169226A (ja) | 書式コンパイラ処理方式 | |
JPH04149732A (ja) | 言語処理プログラムの処理方式 | |
JPH11232119A (ja) | 文字コード変換方法 | |
JPH03186933A (ja) | 言語処理システムのシンボル処理方式 | |
KR20010004509A (ko) | 프로그래밍된 소스 코드 검색방법 | |
JPS63292338A (ja) | 最適化プログラムデバツグ方式 | |
JPH06301549A (ja) | プログラム翻訳装置 | |
JPH0498322A (ja) | コンパイラの作成方法 | |
JPH09237190A (ja) | インライン展開方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |