KR20010078692A - 하이브리드 컴퓨터 프로그래밍 환경 - Google Patents

하이브리드 컴퓨터 프로그래밍 환경 Download PDF

Info

Publication number
KR20010078692A
KR20010078692A KR1020007008906A KR20007008906A KR20010078692A KR 20010078692 A KR20010078692 A KR 20010078692A KR 1020007008906 A KR1020007008906 A KR 1020007008906A KR 20007008906 A KR20007008906 A KR 20007008906A KR 20010078692 A KR20010078692 A KR 20010078692A
Authority
KR
South Korea
Prior art keywords
source code
advanced
language
instructions
assembly language
Prior art date
Application number
KR1020007008906A
Other languages
English (en)
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 KR20010078692A publication Critical patent/KR20010078692A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 적어도 하나의 고급 명령을 포함하는 입력 하이브리드 소스 코드 파일을 파싱(parse)하기 위한 모듈을 포함하는 고급 하이브리드 프로그래밍 환경을 제공하는 것으로; 대응 고급 명령으로부터의 하이브리드 소스 코드 파일에서 적어도 하나의 어셈블리 언어 명령을 정의하기 위한 함수 라이브러리(library); 상기 라이브러리에 따라 고급 명령을 기계어 명령으로 변환하기 위한 모듈; 및 변환된 기계어 명령을 목적 파일로 출력하기 위한 모듈을 제공함으로써 어셈블리 언어 프로그래밍을 용이하게 하기 위한 시스템에 관한 것이다.

Description

하이브리드 컴퓨터 프로그래밍 환경{HYBRID COMPUTER PROGRAMMING ENVIRONMENT}
어셈블리 언어 프로그래밍은 프로그래밍 과정의 코드 작성 및 디버깅 단계에 있어서 특히 어려운 작업이다. 인간의 언어와 상대적으로 근접한 추상 기호로 알고리듬을 기술하는 프로그램을 작성하기 위해 C++같은 고급 언어를 사용할 수 있다. 반면에, 어셈블리 언어는 사실상 기계적이며 단순한 마이크로프로세서 명령으로 알고리듬을 기술한다. 따라서, 어셈블리 언어 프로그램은 고급 언어로 작성된 프로그램보다 일반적으로 더 길며 이해하기가 더 어렵다.
디버깅 과정은 특히 어셈블리 언어 프로그래밍에 있어서 어렵다. 디버깅은 프로그램이 설계 사항과 일치하지 않는 결과를 낳게 하는 에러(버그)에 대해 컴퓨터 프로그램의 테스팅을 포함하는 과정이다. 에러는 프로그램의 기초로 사용되는 기본적 알고리듬에서의 결함으로부터 발생할 수 있다. 이러한 잘못된 결과를 볼 때, 소프트웨어 기술자는 에러를 포함하는 컴퓨터 프로그램의 일부를 발견하고 그것을 다시 작성한다. 이어 기술자는 프로그램을 다시 컴파일하며 이를 다시 테스팅한다. 이런 디버깅 과정은 에러가 프로그램에서 제거될 때까지 반복된다.
많은 수의 기계적 마이크로프로세서­특정 명령에 의해 기본적 알고리듬이 불분명하므로, 디버깅 과정은 어셈블리 언어에 있어서 상대적으로 어려우나, 반면에 고급 언어에서는 기본적 알고리듬을 이해하는 것이 쉽다. 또한, 현재의 어셈블리 언어 프로그래밍 환경은 일반적으로 고급 프로그래밍 환경에서 보여지는 많은 특징을 제공하지 않는다. 예로서, 고급 언어 및 프로그래밍 언어는 하드 디스크에 저장된 파일의 운용를 용이하게 하는 많은 특징을 가진다. 이 파일들은 디버깅 될 때의 프로그램에 의해 생성되는 테스트 출력의 결과를 저장하기 위해 사용된다.
어셈블리 언어 프로그램에 있어서 디버깅 과정의 또다른 문제는 각 어셈블리 언어가 소프트 웨어 기술자에게 새로운 마이크로프로세서가 개발될 때마다 새로운 디버깅 프로그램 셋을 사용하는 방법을 배울 것을 요구하는 자체의 디버깅 프로그램 셋을 갖는다는 것이다.
에뮬레이터(emulator)인, 어셈블리 언어의 실행을 조사하기 위한 가장 정확한 툴(tool)은 마이크로프로세서에 직접 부가되는 특정한 하드웨어 장치이이며, 어셈블리 언어는 마이크로프로세서의 입출력 상태를 계속적으로 모니터링 하기 위해 사용된다. 이런 장치는 고가이며 마이크로프로세서 개발의 초기 단계에서 언제나 유용하지는 않으며, 소프트웨어 개발에서 지연을 초래한다.
유럽 특허 출원 90114711 은 고급 언어로 작성된 제어 프로그램을 기계어로 변환하는데 사용되는 전문 개발 컴퓨터를 설명하며 기계어 제어 프로그램을 개발마이크로프로세서로 전송한다. 비록 이것이 개발 과정을 어느 정도 용이하게 하지만, 단일 프로그램에서 고급 언어 및 어셈블리 언어 명령을 포함하는 프로그램의 작성, 테스팅 및 디버깅을 위해 제공되지 않는다. 게다가, 이런 개발 방법은 전문 하드웨어 및 인터페이스(interface)를 위해 여분의 개발 컴퓨터를 필요로 한다.
보다 효과적인 시스템은 더 적은 전문 전자 소프트웨어를 필요로 할 것이다. 그런 시스템은 일반 목적의 개인 컴퓨터에 사용을 위해 구현될 수 있으며, 회사가 어셈블리 언어 프로그램의 작성 및 디버깅 작업을 위해 직원의 현재 개인적 컴퓨터 기술의 적용 및 이용을 하게 한다. 보다 효과적인 시스템은 또한 경쟁적 고급 프로그래밍 언어 시장에서 어셈블리 언어 프로그래밍에 사용 가능한 모든 수단이 될 것이다.
따라서, 고급 언어 프로그램을 작성 및 디버깅 하는 데의 용이함을 어셈블리 프로그램으로 옮기는 시스템이 요구된다.
본 발명은 컴퓨터 프로그래밍 언어 환경에 관한 것이며 특히 어셈블리 언어 프로그램의 작성 및 디버깅을 용이하게 하는 시스템에 관한 것이다.
도 1 은 본 발명에 의해 제공되는 어셈블리 언어 프로그래밍에서의 단계를 설명하는 블록선도이다.
본 발명의 목적은 어셈블리 언어 프로그램의 작성 및 디버깅을 용이하게 하는 고급 어셈블리 언어 프로그래밍 환경을 제공하는 것이다. 이 목적은 고급 프로그래밍 언어 명령 및 어셈블리 언어 프로그래밍 명령을 포함하는 프로그램을 컴파일(compile) 할 수 있는 하이브리드(hybrid) 프로그래밍 환경을 제공함으로써 성취된다.
본 발명에 따라 적어도 하나의 고급 명령을 포함하는 입력 하이브리드 소스 코드 파일을 파싱(parse)하는 모듈을 포함하는 고급 하이브리드 프로그래밍 환경을제공함으로써 어셈블리 언어 프로그래밍을 용이하게 하기 위한 시스템이 제공된다; 대응하는 고급 명령으로부터 하이브리드 소스 코드 파일에서 적어도 하나의 어셈블리 언어 명령을 정의하기 위한 함수 라이브러리(library); 상기 라이브러리에 따라 고급 명령을 기계어 명령으로 변환하기 위한 모듈; 및 변환된 기계어 명령을 목적 파일로 출력하기 위한 모듈.
본 발명에 따라 적어도 하나의 고급 명령을 가진 입력 하이브리드 소스 코드 파일의 파싱을 포함하는, 다수의 고급 및 어셈블리 언어 명령을 가진 하이브리드 소스 코드 파일을 처리하기 위한 방법이 제공된다; 하이브리드 소스 코트 파일에서의 어셈블리 언어 명령을 고급 언어 명령으로 변환; 고급 명령을 기계어 명령으로 변환; 변환된 기계어 명령을 목적 파일로 컴파일링.
본 발명에 따라 적어도 하나의 고급 명령을 가진 소스 코드 파일의 작성을 포함하는, 어셈블리 언어 프로그램을 작성 및 디버깅 하기 위한 방법이 또한 제공된다; 적어도 하나의 고급 명령을 가진 소스 코드 파일을 디버깅; 소스 코드 파일의 고급 명령을 어셈블리 언어 명령으로 치환; 및 고급 및 어셈블리 언어 명령을 가진 결과 하이브리드 소스 코드 파일을 디버깅.
본 발명은 덧붙인 도면을 참조하여 단지 예를 들어 설명된다.
본 발명에서 프로그래머는 우선 고급 언어로 작성된 프로그램을 컴파일 및 디버깅 하기 위해 고급 컴파일러 및 프로그래밍 환경을 사용한다. 프로그래머는 결과 고급 코드에 만족할 때까지 고급 프로그램 코드를 디버깅한다. 이어 프로그래머는 점진적으로 고급 명령을 어셈블리 언어 명령으로 치환한다.
본 발명의 하이브리드 프로그래밍 환경은 어셈블리 언어 명령을 에뮬레이팅하는 함수 라이브러리가 제공되는 고급 언어 컴파일러이다. 이런 함수는 컴파일러의 표준 고급 언어 명령의 그룹으로 작성되어서 표준 고급 언어 명령과 함께 사용될 수 있다. 본 발명에 의해 제공된 특정 라이브러리의 함수는 어셈블리 언어 명령의 동작을 모방한다. 컴파일러에 의해 인식된 라이브러리 리스트를 소정의 다른 라이브러리에 첨가함으로써 라이브러리는 소정의 다른 라이브러리와 함께 컴파일러에 대해 유용하게 되며, 전문 하드웨어를 필요로 하지 않는다.
컴퓨터 프로그래머는 고급 프로그래밍 언어 명령으로 작성된 프로그램을 컴퓨터 파일로 등록함으로써 프로그래밍 과정을 시작한다. 이 파일을 소스 코드라고 한다. 이어 프로그래머는 표준 고급 프로그래밍 언어 컴파일러를 사용해서 소스 코드를 컴파일한다. 소정의 에러를 교정한 후, 프로그래머는 소스 코드를 컴파일한다. 이 과정은 컴파일링된 파일이 생성될 때까지 계속된다.
이어 프로그래머는 실행 프로그램을 생성하기 위해 컴파일링된 파일을 표준 링커(linker)를 사용해서 링킹한다. 프로그래머는 설계 사항과의 일치를 위해 이 프로그램을 테스팅한다. 프로그래머는 소스 코드를 변경함으로써 설계 사항과의 소정의 불일치를 교정하며 이어 컴파일링 및 링킹 단계를 반복한다. 프로그래머는소스 코드가 설계 사항을 올바르게 구현하는 지에 만족할 때까지 이 과정을 반복한다.
이어 프로그래머는 고급 명령의 일부를 어셈블리 언어 명령으로 치환하여 고급 및 어셈블리 언어 명령을 포함하는 하이브리드 소스 코드를 생성한다. 프로그래머는 컴파일러가 고급 명령과 함께 어셈블리 언어 명령을 컴파일 하게 하는 특정 함수 라이브러리를 사용해서 하이브리드 소스 코드를 컴파일링 또는 링킹한다. 결과 실행 프로그램을 테스팅한 후, 프로그래머는 하이브리드 소스 코드로 도입된 어셈블리 언어 명령에 대해 소정의 변경을 하며, 컴파일링 및 링킹 단계를 반복한다.
이런 식으로, 프로그래머는 점진적으로 모든 고급 명령을 어셈블리 언어 명령으로 치환한다.
과정의 최종 단계에서, 프로그래머는 예상한 마이크로프로세서에 대한 표준 어셈블러를 사용해서 어셈블리 언어 프로그램을 어셈블링 및 디버깅한다.
본 발명은 프로그래머가 고급 및 어셈블리 언어 명령을 포함한 프로그램을 작성할 수 있게 하는 하이브리드 프로그래밍 환경이다. 본 발명에 따라 하이브리드 프로그래밍 환경의 원칙 및 동작은 도면 및 덧붙인 설명을 참조하여 보다 잘 이해될 것이다.
이제 도면을 참조하면, 도 1 은 하이브리드 고급 및 어셈블리 언어 프로그래밍 과정에 사용되는 본 발명을 도시한다.
블럭 10­40 은 종래 기술을 나타낸다. 이것은 전통적인 고급 컴퓨터 언어 프로그래밍 과정을 도시한다. 여기서, 프로그래머는 고급 소스 코드 프로그램을작성하며, 소스 코드를 컴파일링 및 디버깅 하기 위해 전통적인 고급 언어 컴파일러 및 프로그래밍 환경을 사용하여 디버깅된 고급 소스 코드를 생성한다.
블록 10 은 소정 프로그램의 기본적 알고리듬을 구현할 (C 또는 C++같은)고급 프로그래밍 언어에서 프로그래머에 의해 작성된 프로그램을 나타낸다. 이 프로그램을 소스 코드라고 한다.
블록 20 은 블록 10 에 의해 나타나는 고급 소스 코드 프로그램을 컴파일링 또는 디버깅 하기 위해 프로그래머에 의해 사용되는 컴파일러 및 프로그래밍 환경을 나타낸다. 이는 표준 컴파일러 및 프로그래밍 환경일 수 있으며, 또는 본 발명에 의해 제시된 컴파일러 및 프로그래밍 환경일 수 있다. 어느 경우든, 컴파일러 및 프로그래밍 환경은 스프트웨어 개발에 사용되는 표준 개인 컴퓨터에 쓰이는 공통 소프트웨어 툴일 수 있다.
컴파일러는 산업 표준 함수 라이브러리 및 프로그래머에 의해 획득되거나 한정된 전문 라이브러리를 포함한다. 예로서, 전문 라이브러리는 워드 프로세싱 소프트웨어를 프로그래밍하는데 유용한 함수를 포함한다. 그러한 라이브러리는 페이지(page) 상의 다양한 방향으로 문자 또는 워드를 표시하거나, 문서에서 워드를 찾거나 또는 문서에서 워드의 철자를 교정하는 함수를 포함할 것이다.
컴파일러는 소스 코드를 한 줄씩 판독하는 프로그램이며, 각 명령을 어셈블리 언어 명령으로 변환한다. 이어 컴파일러는 이 어셉블리 언어 명령을 목적 파일로 불리는 파일에 위치시킨다. 컴파일러에 의해 생성되는 어셈블리 언어 명령은개발 개인 컴퓨터에서 마이크로프로세서와 매칭(match)될 수 있을 것이다.
명백하게 링커인 프로그래밍 환경의 다른 부분은 컴파일러에 의해 생성된 목적 파일로부터 실행 프로그램을 생성하기 위해 사용된다. 컴파일링 및 링킹의 결과는 실행 프로그램이다.
블럭 30 은 고급 디버깅 과정을 나타낸다. 이 과정은 블럭 20 의 컴파일 과정에서 컴파일링된 실행 프로그램의 테스팅 및 프로그래머에 의해 의도된 결과와의 비교를 포함한다. 만일 결과가 프로그래머의 의도된 것과 일치하지 않으면, 프로그래머는 그러한 동작의 원인인 소스 코드의 고급 명령을 찾아 이를 변경한다.
원치않은 동작의 원인인 고급 명령을 찾기 위해 프로그래머는 공통 고급 디버깅 툴을 사용한다. 하나의 그런 툴은 프로그램에서 브레이크 포인트(break point)를 셋팅하는 것이다. 이 포인트에서 실행이 멈추며, 프로그래머가 프로그램에서 사용되는 변수의 값을 검사할 수 있게 한다. 또다른 그런 툴은 변수들이 프로그래머에 의해 설정된 값으로 셋팅될 때 트리거링(trigger) 되는 프로그램 실행에서 브레이크의 셋팅이다. 또다른 디버깅 툴은 명령에 의해 프로그램 명령을 실행하기 위한 프로그래머의 능력이며, 프로그래머가 프로그램을 통해서 변수의 값 및 명령의 실행 흐름을 검사하게 한다.
이어 프로그래머는 소스 코드를 재 컴파일링 한다. 프로그래머는 프로그래머가 결과 소스 코드에 만족할 때까지 디버깅 과정을 반복한다.
블럭 40 은 도 30 에 도시된 고급 디버깅 과정의 결과인 디버깅된 고급 프로그래밍 언어 코드를 도시한다. 여기가 표준 고급 언어 프로그래밍 과정이 정지하는 곳이다.
블럭 50 은 프로그래머가 고급 프로그래밍 언어 명령을 어셈블리 언어 명령으로 치환하기 시작하는 과정이다. 결과는 어셈블리 및 고급 언어 명령을 포함하는 하이브리드 소스 코드 파일이다.
블럭 60 은 컴파일러에 의해 컴파일된 고급 프로그래밍 언어로 어셈블리 언어 명령을 정의하는 함수 라이브러리를 가진 표준 고급 프로그래밍 언어 컴파일러인 본 발명을 도시한다. 이 라이브러리는 컴파일러가 고급 언어 및 어셈블리 언어 명령을 포함하는 하이브리드 소스 코드 파일의 컴파일링을 가능하게 한다. 프로그래머는 블럭 50 에 나타난 과정에서 연유한 고급 및 어셈블리 언어 명령을 포함하는 하이브리드 프로그램 코드로 부터 실행 프로그램을 컴파일링 하기 위해 컴파일러를 사용한다.
블럭 70 은 블럭 50 에 도시된 과정에서 연유한 하이브리드 코드에 대한 디버깅 과정을 나타낸다. 프로그래머는 블럭 20 에 나타낸 고급 디버깅 과정으로 블럭 60 의 하이브리드 프로그래밍 환경을 사용해서 준비된 실행 프로그램의 결과를 프로그래머가 의도한 결과와 비교함으로써 블럭 50 의 소스 코드에 대한 적절한 교정을 하며, 이어 소스 코드를 재 컴파일링 한다. 하이브리드 코드의 디버깅에서, 프로그래머는 고급 프로그래밍 환경에 유용한 디버깅 툴의 리치 셋(rich set)을 사용한다. 이 과정은 하이브리드 소스 코드로 부터 유래한 실행 프로그램이 프로그래머에 의해 의도된 대로 실행될 때까지 반복된다.
이어 프로그래머는 다른 고급 프로그래밍 명령을 어셈블리 언어 프로그래밍명령으로 치환하는, 블럭 50 에 도시된 과정으로 돌아가며, 모든 고급 코드가 어셈블리 언어 코드로 치환되고 오직 어셈블리 언어 명령을 포함하는 결과 소스 코드 파일이 완전히 디버깅 될 때까지 블럭 60 및 70 에 도시된 과정을 반복한다.
어셈블리 언어 어셈블러 프로그램을 도시한 블럭 80 및 어셈블리 언어 디버거를 도시한 블럭 90 은 과정의 최종 단계를 나타내며, 여기서 프로그래머는 예상한 마이크로프로세서에 대한 표준 어셈블러 및 디버깅 툴을 사용해서 소스 코드 파일에서 어셈블리 언어 프로그램을 어셈블링 및 디버깅한다.
전술한 바가 예와 같이 작용할 것으로 기대되며 많은 다른 실시예가 본 발명의 사상 및 범위 내에서 가능하리라 생각된다.

Claims (3)

  1. 고급 하이브리드 프로그래밍 환경을 제공함으로써 어셈블리 언어 프로그래밍을 용이하게 하기 위한 시스템에 있어서,
    (a)적어도 하나의 고급 명령을 포함하는 소스 코드 파일을 파싱(parse)하는 모듈;
    (b)상기 하이브리드 소스 코드 파일의 적어도 하나의 어셈블리 언어 명령을 대응하는 고급 명령에 관하여 정의하는 함수 라이브러리;
    (c)상기 라이브러리에 따라 상기 고급 명령을 기계어 명령으로 변환하는 모듈; 및
    (d)상기 변환된 기계어 명령을 목적 파일로 출력하는 모듈을 포함하는 것을 특징으로 하는 시스템.
  2. 다수의 고급 및 어셈블리 언어 명령을 포함하는 하이브리드 소스 코드 파일을 처리하기 위한 방법에 있어서,
    (a)적어도 하나의 고급 명령을 포함하는 상기 하이브리드 소스 코드 파일을 파싱하는 단계;
    (b)상기 하이브리드 소스 코드 파일의 어셈블리 언어 명령을 고급 언어 명령으로 변한하는 단계;
    (c)상기 고급 명령을 기계어 명령으로 변환하는 단계; 및
    (d)상기 변환된 기계어를 목적 파일로 컴파일링하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 어셈블리 언어 프로그램을 작성 및 디버깅하기 위한 방법에 있어서,
    (a)각 고급 언어 명령에 따라 복수의 각 어셈블리 언어 명령을 정의하는 단계;
    (b)상기 복수의 고급 명령 중 적어도 하나를 포함하는 소스 코드 파일을 작성하는 단계;
    (c)상기 복수의 고급 명령 중 적어도 하나가 바르게 기능할 때까지 상기 소스 코드 파일을 디버깅하는 단계;
    (d)상기 소스 코드 파일의 상기 복수의 고급 명령 중 적어도 하나를 적어도 하나의 어셈블리 명령으로 치환하는 단계; 및
    (e)상기 고급 및 상기 어셈블리 언어 명령을 포함하는 상기 결과 하이브리드 소스 코드 파일을 디버깅 하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020007008906A 1998-12-14 1999-12-14 하이브리드 컴퓨터 프로그래밍 환경 KR20010078692A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/210,542 1998-12-14
US09/210,542 US6314557B1 (en) 1998-12-14 1998-12-14 Hybrid computer programming environment
PCT/EP1999/009929 WO2000036500A2 (en) 1998-12-14 1999-12-14 Hybrid computer programming environment

Publications (1)

Publication Number Publication Date
KR20010078692A true KR20010078692A (ko) 2001-08-21

Family

ID=22783309

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008906A KR20010078692A (ko) 1998-12-14 1999-12-14 하이브리드 컴퓨터 프로그래밍 환경

Country Status (6)

Country Link
US (1) US6314557B1 (ko)
EP (1) EP1064598A2 (ko)
JP (1) JP2002532804A (ko)
KR (1) KR20010078692A (ko)
CN (1) CN1299482A (ko)
WO (1) WO2000036500A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625808B1 (en) * 1999-12-10 2003-09-23 Microsoft Corporation Method and apparatus for facilitating memory management in a program comprised of heterogeneous components
US6668369B1 (en) * 1999-12-29 2003-12-23 International Business Machines Corporation Software debugging tool for displaying dynamically written software code
US6968548B1 (en) * 2000-12-01 2005-11-22 Unisys Corporation Method and apparatus for sharing data structures between assembly language programs and high-level language programs
US20020083421A1 (en) * 2000-12-22 2002-06-27 Hitachi America, Ltd. Assembly language code compilation for an instruction-set architecture containing new instructions using the prior assembler
US7203925B1 (en) * 2001-09-14 2007-04-10 Emc Corporation Graphical compiler
US7216338B2 (en) * 2002-02-20 2007-05-08 Microsoft Corporation Conformance execution of non-deterministic specifications for components
JP2004013190A (ja) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd ソフトウエア開発環境、シミュレータ及び記録媒体
AU2003274644A1 (en) * 2002-10-21 2004-05-04 Eitan Glotman System and method for a mixed-language compiler
US7237233B2 (en) * 2002-12-19 2007-06-26 Texas Instruments Incorporated Assembly directives for the support of multi-language programming
GB0303270D0 (en) * 2003-02-13 2003-03-19 Renishaw Plc A machine tool control process and apparatus therefor
US20050193378A1 (en) * 2004-03-01 2005-09-01 Breault Richard E. System and method for building an executable program with a low probability of failure on demand
US20070271553A1 (en) * 2006-05-22 2007-11-22 Micro Focus (Us), Inc. Method and system for translating assembler code to a target language
US8869120B2 (en) * 2007-11-20 2014-10-21 National Ict Australia Limited Multi language software code analysis
WO2014209253A1 (en) * 2013-06-24 2014-12-31 Hewlett-Packard Development Company, L.P. Generating a logical representation from a physical flow
JP6917169B2 (ja) * 2017-03-30 2021-08-11 東芝産業機器システム株式会社 コンピュータプログラム及びコンピュータシステム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0362202A (ja) 1989-07-31 1991-03-18 Japan Electron Control Syst Co Ltd 制御プログラム開発装置
US5132972A (en) * 1989-11-29 1992-07-21 Honeywell Bull Inc. Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
US5430862A (en) 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
JPH04229337A (ja) 1990-12-27 1992-08-18 Hitachi Ltd エミュレータ
US5261055A (en) 1992-02-19 1993-11-09 Milsys, Ltd. Externally updatable ROM (EUROM)
JP3210466B2 (ja) 1993-02-25 2001-09-17 株式会社リコー Cpuコア、該cpuコアを有するasic、及び該asicを備えたエミュレーションシステム
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH0721033A (ja) * 1993-07-07 1995-01-24 Nec Corp 言語処理装置及びその方法
US5392036A (en) 1993-10-28 1995-02-21 Mitan Software International (1989) Ltd. Efficient optimal data recopression method and apparatus
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US5740469A (en) * 1995-04-24 1998-04-14 Motorola Inc. Apparatus for dynamically reading/writing multiple object file formats through use of object code readers/writers interfacing with generalized object file format interface and applications programmers' interface
US5860008A (en) * 1996-02-02 1999-01-12 Apple Computer, Inc. Method and apparatus for decompiling a compiled interpretive code
US5805893A (en) * 1996-03-01 1998-09-08 Electronic Data Systems Corporation Assembly language program converter
US5668989A (en) * 1996-09-18 1997-09-16 Mao; Decao Two-digit hybrid radix year numbers for year 2000 and beyond
US6021275A (en) * 1996-08-05 2000-02-01 General Magic, Inc. Object code structure and method for translation of architecture independent program implementations
US6233545B1 (en) * 1997-05-01 2001-05-15 William E. Datig Universal machine translator of arbitrary languages utilizing epistemic moments
US6083278A (en) * 1997-05-28 2000-07-04 Texas Instruments Incorporated System and method for displaying and editing assembly language source codes
JP3424520B2 (ja) * 1997-08-29 2003-07-07 松下電器産業株式会社 プログラム変換装置とデバッグ装置
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
US6173441B1 (en) * 1998-10-16 2001-01-09 Peter A. Klein Method and system for compiling source code containing natural language instructions

Also Published As

Publication number Publication date
CN1299482A (zh) 2001-06-13
EP1064598A2 (en) 2001-01-03
JP2002532804A (ja) 2002-10-02
WO2000036500A2 (en) 2000-06-22
WO2000036500A3 (en) 2000-11-09
US6314557B1 (en) 2001-11-06

Similar Documents

Publication Publication Date Title
Leroy et al. CompCert-a formally verified optimizing compiler
US7761855B2 (en) Computer program product and system for altering execution flow of a computer program
US20060064677A1 (en) Debugger and method for debugging computer programs across multiple programming languages
US6314557B1 (en) Hybrid computer programming environment
US8448152B2 (en) High-level language, architecture-independent probe program compiler
US20030088860A1 (en) Compiler annotation for binary translation tools
KR100532467B1 (ko) 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법
Stepney Incremental development of a high integrity compiler: experience from an industrial development
Chang et al. Analysis of low-level code using cooperating decompilers
Elms Debugging optimised code using function interpretation
Galindo Jiménez Automatic generation of test cases to improve code coverage in Java
JP3368795B2 (ja) コンパイル制御方法、コンパイル装置及び記録媒体
Usov ptr-tidy: Automatic Rejuvenation of Raw Pointers in C+
Rinko Efficient IEC 61131-3 Structured Text tooling in modern distributed control system
Cok Does your software do what it should?
Newman Normalizing-refactorings: Simplifying the Construction of Source Code Transformations
JPH0588939A (ja) 副プログラム単体テスト方式
Nagle Archaic to modern 1: basic tools & issues
KARAPATEAS RETARGETING AN ASSEMBLY OPTIMIZER FOR THE MIPS/SCALE ASSEMBLY
CN118295665A (en) Heterogeneous joint compiling method and device
Parragi et al. Instrumentation of C++ programs using automatic source code transformations
Liptak et al. Software Fundamentals
JPS58169637A (ja) コンパイル処理方式
Collins et al. A translator writing system for microcomputer high-level languages and assemblers
ELTE 3in Kutatócsoport Instrumentation of C++ Programs Using Automatic Source Code Transformations

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid