KR19980028627A - 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 - Google Patents

쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 Download PDF

Info

Publication number
KR19980028627A
KR19980028627A KR1019960047755A KR19960047755A KR19980028627A KR 19980028627 A KR19980028627 A KR 19980028627A KR 1019960047755 A KR1019960047755 A KR 1019960047755A KR 19960047755 A KR19960047755 A KR 19960047755A KR 19980028627 A KR19980028627 A KR 19980028627A
Authority
KR
South Korea
Prior art keywords
parallel
variable
local variable
thread
local
Prior art date
Application number
KR1019960047755A
Other languages
English (en)
Other versions
KR100198956B1 (ko
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 양승택
Priority to KR1019960047755A priority Critical patent/KR100198956B1/ko
Publication of KR19980028627A publication Critical patent/KR19980028627A/ko
Application granted granted Critical
Publication of KR100198956B1 publication Critical patent/KR100198956B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법.
2. 발명이 해결하려고 하는 기술적 과제
중첩된 병렬문에서 지역 변수를 중복 저장하지 않도록 하여 저장장소를 효율적으로 사용하도록 하고자 함.
3. 발명의 해결방법의 요지
문법 및 의미 분석을 수행하여 병렬 구문이 존재하면 실행문 각각에 쓰레드(thread) 번호를 순서대로 할당하고, 실행문을 파싱하여 변수가 존재하면 심볼 테이블을 검색하여 병렬 구문 내의 변수가 지역 변수인 경우 해당 실행 문의 쓰레드(thread) 번호에 해당하는 지역 변수 테이블을 검색하는 단계와 상기 단계에서 지역변수 테이블에 설치되어 있으면 다른 실행문을 파싱하여 변수의 존재 여부를 확인하고, 테이블에 설치되어 있지 않으면 해당 실행 문의 쓰레드(thread) 번호에 의해 지역 변수 테이블을 설치하고, 그 지역 변수를 해당 쓰레드(thread) 번호에 의한 코드 변환한 후, 코드를 리스트에 생성하는 단계를 통해 이루어짐.
4. 발명의 중요한 용도
고속병렬컴퓨터의 번역기에 이용됨.

Description

쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법
본 발명은 병렬 프로그래밍을 가능하게 하는 쓰레드(thread) 기반형 번역기에서 병렬 실행을 의미하는 병렬 구문의 올바른 코드 번역시 지역변수 테이블 설정방법에 관한 것으로, 더욱 자세하게는 쓰레드(thread) 기반형 병렬 구문을 사용한 병렬 프로그램에 대하여 쓰레드(thread) 생성에 해당하는 실행문에서 쓰레드(thread) 생성의 매개 변수 변환을 하기 위한 지역 변수를 관리하기 위하여 동적으로 지역 변수 테이블을 구축하고, 중첩된 병렬문에서 지역 변수를 중복 저장하지 않게 지역 변수를 관리하는 방법에 관한 것이다.
병렬 구문 내에 정의된 실행문 각각은 번역된 쓰레드(thread) 프로그램에서 하나의 함수로 정의되어야 한다. 이를 위하여 병렬 구문 내에서 사용되는 지역 변수는 쓰레드(thread) 생성 라이브러리가 부를 함수의 참조로 불러내는(call by reference) 매개 변수 전달 방식으로 표현되어야 한다. 병렬 구문 내에서 사용되는 전역 변수는 생성되는 모든 쓰레드(thread) 함수에서 참조가 가능하나, 지역 변수의 경우 쓰레드(thread) 함수에서 참조가 불가능하기 때문에 이를 쓰레드(thread) 함수의 매개 변수로 전달하여야 한다.
현재 쓰레드(thread) 생성 라이브러리의 경우 쓰레드(thread) 함수의 매개 변수가 단일 매개 변수만을 허용하므로 병렬 구문에서 사용되는 모든 지역 변수를 전달하기 위하여 이들을 모아 하나의 스트럭트(struct) 타입으로 구조화하여야 한다. 여기서, 스트럭트(struct) 타입이란 서로 다른 다수개의 타입들을 하나의 타입으로 패키지 하기 위한 타입을 말한다.
이를 위하여 병렬 구문의 번역 과정 중 코드 번역을 가능하게 하는 지역 변수의 관리는 필수적이며, 새로운 항목을 추가하고, 항목의 존재 여부를 발견할 수 있으며, 지역 변수 변환을 위한 저장 장소의 낭비를 없애 효율적으로 코드를 번역할 수가 있다.
그러나, 종래의 쓰레드 기반형 번역기에서 병렬 구문의 실행문이 쓰레드(thread) 함수로 변환되기 위하여 쓰레드(thread)로 전송할 지역 변수를 관리하는 방법은, 지역 변수 관리를 위해 관리기를 따로 두지 않고 병렬 구문 내의 실행 문에서 사용되는 지역 변수의 집합을 각각 구하여 중첩된 병렬문이 쓰레드(thread) 함수로 변환하기 위해서도 중복된 지역 변수의 집합을 갖고 있음으로써 저장 장소의 낭비를 가져오게 되는 문제점이 있었다.
따라서, 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 본 발명은 쓰레드(thread) 생성에 해당하는 실행문에서 쓰레드(thread) 번호에 따라 지역 변수 테이블 관리기를 두어 쓰레드(thread) 생성의 매개 변수 변환을 하기 위한 지역 변수를 관리하기 위하여 병렬 구문내의 실행문 파싱시 동적으로 지역 변수 테이블을 구축하고, 실행문에 할당된 쓰레드(thread) 번호를 이용하여 지역 변수 테이블을 수정함으로써, 중첩된 병렬문에서 지역 변수를 중복 저장하지 않도록 하는 지역변수 테이블 설정방법을 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 고속병렬컴퓨터의 개략적인 구성도,
도 2 는 병렬 프로그램과 지역 변수 테이블 관리기 사이의 접속도,
도 3 은 쓰레드와 지역 변수 테이블 관리기의 관계 설명도,
도 4 는 병렬 구문을 사용한 병렬 프로그램에서 쓰레드 생성과 지역 변수 테이블의 구성 동작 설명도,
도 5 는 본 발명에 따른 지역 변수 테이블 관리기의 제어 흐름도.
*도면의 주요부분에 대한 부호의 설명
1 : 노드
2, 6 : 엑센트 네트
3 : 입출력 노드
4 : 공유 메모리
5 : 처리기
상기 목적을 달성하기 위한 본 발명은, 고속병렬 컴퓨터의 쓰레드(thread) 기반형 번역기에 적용되는 지역변수 테이블 설정방법에 있어서, 프로그램은 파싱시 심볼 테이블을 구성하고, 문법 및 의미 분석을 수행하여 병렬 구문이 존재하면 실행 문 각각에 쓰레드(thread) 번호를 순서대로 할당하고, 실행문을 파싱하여 변수가 존재하는지 확인하는 제 1 단계; 프로그램 파싱 중 병렬 구문이 존재하지 않으면 리스트에 코드를 그대로 생성하는 제 2 단계; 상기 제 1 단계 수행 후, 변수가 존재하지 않으면 리스트에 코드를 생성하고, 변수가 존재하면 심볼 테이블을 검색하여 병렬 구문 내의 변수가 지역 변수인지 확인하는 제 3 단계; 상기 제 3 단계에서 지역 변수가 아닌 전역 변수이면 매개변수 변환을 하지 않고, 리스트에 코드를 그대로 생성하고, 지역 변수이면 해당 실행 문의 쓰레드(thread) 번호에 해당하는 지역 변수 테이블을 검색하는 제 4 단계; 상기 제 4 단계에서 지역변수 테이블에 설치되어 있으면 다른 실행문을 파싱하여 변수의 존재 여부를 확인하는 상기 제 3 단계 이하를 수행하고, 테이블에 설치되어 있지 않으면 해당 실행 문의 쓰레드(thread) 번호에 의해 지역 변수 테이블을 설치하고, 그 지역 변수를 해당 쓰레드(thread) 번호에 의한 코드 변환한 후, 코드를 리스트에 생성하고, 병렬 구문이 종료되었는지를 확인하는 제 5 단계; 및 병렬구문이 종료되지 않았으면 다른 실행문을 파싱하여 변수의 존재여부를 확인하는 상기 제 3 단계 이하를 수행하고, 병렬 구문 종료시에는 해당 병렬 실행 문의 쓰레드(thread) 번호로 지역 변수 테이블을 수정하고, 프로그램이 종료되면 리스트에서 쓰레드를 사용하여 번역된 프로그램을 출력하는 제 6 단계를 포함하여 이루어진 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 고속병렬컴퓨터의 개략적인 구성도로서, 고속병렬컴퓨터는 4개의 처리기(5)와, 공유 메모리(4)를 갖는 노드(1), 고속의 네트워크로서 크로스바 스위치인 엑센트네트(2,6), 엑센트 네트(2,6)와 인터페이스를 담당하는 XNIF, 그리고 입출력을 담당하는 입출력 노드들(3)을 구비한다.
도 2 는 고속병렬컴퓨터상에서 실행되는 쓰레드(thread) 기반형 병렬 프로그램과 지역 변수 테이블 관리기 사이의 인터페이스를 설명하기 위한 도면이다.
고속병렬컴퓨터는 분산형 메모리(11)를 갖고 노드(10) 간에는 고속의 네트워크(9)로 연결되어 있으며, 메시지 전송 라이브러리를 제공함으로써 자료의 송수신을 지원한다.
쓰레드(thread) 기반형 병렬 프로그램 수행 코드(15)는 시스템에서 제공되는 타스크 관리자와 스케줄러에 의해서 여러개의 노드(10)에 분산되어 실행된다. 각각의 노드(10)에는 하나 이상의 서브 프로그램(12)이 실행되며, 노드(10) 내의 연결 버스(7)에 연결된 노드의 다수 처리기(14)들은 스케줄러를 통하여 자신에게 할당된 서브 프로그램의 일부분, 즉 프로세스를 쓰레드(13) 단위로 수행한다.
하나의 서브 프로그램(12)은 하나 이상의 프로세스로 구성되는데, 하나의 동일한 프로세스 안에 있는 쓰레드들은 프로세스의 메모리를 공유하면서 서로 간에 통신을 하게 된다.
지역 변수 테이블 관리기(16)는 상기와 같이 분산되어 실행되는 병렬 프로그램 코드의 모든 쓰레드(thread)에 배치된다. 이 경우에 병렬 구문으로 작성된 병렬 프로그램에서 병렬 구문 내의 한 실행문이 쓰레드(thread) 함수로 정의되는데, 병렬 구문 내에서 사용되는 지역 변수는 쓰레드 생성 라이브러리가 부를 함수의 매개 변수 전달 방식의 표현으로 코드 변환이 일어나게 된다. 쓰레드 생성에 해당하는 실행문에서 쓰레드 생성의 매개 변수 변환을 하기 위한 지역 변수를 관리하기 위하여 동적으로 지역 변수 테이블을 구축하고, 중첩된 병렬 문에서 지역 변수를 중복 저장하지 않게 지역 변수를 관리하는 방법이 지역 변수 테이블 관리기에 의해 이루어진다.
도 3 은 쓰레드(thread)와 지역 변수 테이블 관리기의 관계를 설명하기 위한 도면이다.
사용자는 병렬 구문을 사용하여 병렬 응용 프로그램을 작성하게 되고, 병렬 구문 내의 실행문은 하나의 쓰레드(thread) 함수로 정의(17)된다. 이 경우 실행 문은 중첩된 병렬 구문도 가능하다. 쓰레드(thread) 함수로 정의되는 하나의 실행 문에서는 지역 변수의 사용이 가능하며, 이 지역 변수는 쓰레드(thread) 함수의 매개 변수가 되어야 하므로 지역 변수 테이블 관리기에 의해 구성되는 지역 변수 테이블에서 정보를 받기 위하여 연결(18)된다. 실제적으로 지역 변수에 관한 정보는 컴파일러에서 제공하는 심볼 테이블과 연결(19)되어 있다.
도 4 는 도 3 에 이어 컴파일러 단계에서 병렬 구문을 사용한 병렬 프로그램의 쓰레드(thread) 생성과 지역 변수 테이블의 구성과정을 설명하기 위한 도면이다.
병렬 구문을 사용한 병렬 프로그램은 파서(21)에 의해 분석되고, 병렬 구문 내의 실행 문 분석시 변수에 대하여 지역 변수의 여부를 판가름 하기 위하여 심볼 테이블을 검색(22)하게 된다. 이 경우 지역 변수에 대해서는 지역 변수 테이블을 구성(23)하게 되고, 이는 실제적으로 심볼 테이블의 정보(24)와 연결되어 있다. 그리고, 병렬 구문의 쓰레드(thread) 함수 코드를 생성하는 과정(25)에서 지역 변수 테이블(23)을 참조하여 코드를 생성하게 된다.
도 5 는 본 발명에 따른 지역 변수 테이블 관리기에서 지역변수 테이블 설정을 위한 제어 흐름도를 나타낸다.
병렬 구문을 사용한 병렬 프로그램은 병렬 구문 내의 실행 문 각각을 쓰레드(thread) 수행으로 정의하여 이를 수행시키는 기능을 가진다. 이러한 프로그램은 파싱 과정에서 심볼 테이블을 구성하고, 문법 및 의미 분석을 하게 된다(101). 프로그램 파싱 중 병렬 구문을 만나게 되면(102) 실행 문 각각에 쓰레드(thread) 번호를 순서대로 할당하고,(103) 병렬 구문 검색 과정(102)에서 병렬 구문 파싱이 아니면 리스트에 코드를 그대로 생성한 후(117), 프로그램의 끝인지 확인한다(113).
실행 문 각각에 쓰레드(thread) 번호를 순서대로 할당한 후(103), 실행문 파싱 중 변수를 만나면(104) 심볼 테이블을 검색하여(105) 프로그램 선언부 파싱 시 처리된 심볼 테이블의 정보를 얻는다. 실행문 파싱 중 변수가 존재하지 않으면 리스트에 코드를 그대로 생성하고(115), 실행문의 끝까지 파싱하여 변수의 존재 여부를 확인한다(116, 104).
심볼테이블의 검색 결과(105) 병렬 구문 내의 변수가 지역 변수가 아니면(106) 이는 전역 변수임을 뜻하므로 생성된 모든 쓰레드(thread)가 참조할 수 있기 때문에 매개변수 변환을 하지 않고, 리스트에 코드를 그대로 생성한(115) 다음, 실행문의 끝인지를 확인한다(116).
심볼테이블의 검색 결과(105) 지역 변수임이 판정되면(106) 해당 실행 문의 쓰레드(thread) 번호에 해당하는 지역 변수 테이블을 검색한다(107). 이는 한 실행 문에서 중복되어 나오는 지역 변수가 있을 경우 지역 변수 테이블에 중복적인 설치를 하지 않게 하기 위함이다.
지역변수 테이블의 검색 결과(107) 테이블에 설치되어 있으면(108) 다른 실행문을 파싱하여 변수의 존재 여부를 확인하는 과정(104) 이하를 수행하고, 테이블에 설치되어 있지 않으면(108) 해당 실행 문의 쓰레드(thread) 번호에 의해 지역 변수 테이블을 설치한다(109). 그런 다음, 그 지역 변수는 해당 쓰레드(thread) 번호에 의한 코드 변환을 한 후, 코드를 리스트에 생성하고(110), 병렬 구문이 종료되었는지를 확인한다(111).
병렬구문이 종료되지 않았으면(111) 다른 실행문을 파싱하여 변수의 존재여부를 확인하는 과정(104) 이하를 수행하고, 병렬 구문 종료시에는(111) 해당 병렬 실행 문의 쓰레드(thread) 번호로 지역 변수 테이블을 수정한다(112). 이는 중첩된 병렬 문의 경우 병렬 문 자체도 하나의 쓰레드(thread) 함수가 되기 때문에 지역 변수 관리를 중복적으로 하지 않기 위함이다.
그런 다음, 프로그램의 끝인지 확인하여(113) 프로그램이 종료되었으면 리스트에서 쓰레드를 사용하여 번역된 프로그램을 출력하고(114), 프로그램이 종료되지 않았으면 초기 과정(101)을 반복 수행한다.
이상에서 설명한 본 발명은 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러가지 치환, 변형 및 변경이 가능하므로, 전술한 실시예 및 도면에 한정되는 것이 아니다.
상기와 같이 이루어지는 본 발명은, 쓰레드(thread) 생성에 해당하는 실행문에서 쓰레드(thread) 번호에 따라 지역 변수 테이블 관리기를 두어 병렬 구문내의 실행문 파싱시 동적으로 지역 변수 테이블을 구축하고, 실행문에 할당된 쓰레드(thread) 번호를 이용하여 지역 변수 테이블을 수정함으로써, 중첩된 병렬문에서 지역 변수를 중복 저장하지 않도록 할 뿐만 아니라 이로 인해 저장장소를 효율적으로 사용할 수 있는 효과가 있다.

Claims (1)

  1. 고속병렬 컴퓨터의 쓰레드(thread) 기반형 번역기에 적용되는 지역변수 테이블 설정방법에 있어서,
    프로그램은 파싱시 심볼 테이블을 구성하고, 문법 및 의미 분석을 수행하여 병렬 구문이 존재하면 실행 문 각각에 쓰레드(thread) 번호를 순서대로 할당하고, 실행문을 파싱하여 변수가 존재하는지 확인하는 제 1 단계;
    프로그램 파싱 중 병렬 구문이 존재하지 않으면 리스트에 코드를 그대로 생성하는 제 2 단계;
    상기 제 1 단계 수행 후, 변수가 존재하지 않으면 리스트에 코드를 생성하고, 변수가 존재하면 심볼 테이블을 검색하여 병렬 구문 내의 변수가 지역 변수인지 확인하는 제 3 단계;
    상기 제 3 단계에서 지역 변수가 아닌 전역 변수이면 매개변수 변환을 하지 않고, 리스트에 코드를 그대로 생성하고, 지역 변수이면 해당 실행 문의 쓰레드(thread) 번호에 해당하는 지역 변수 테이블을 검색하는 제 4 단계;
    상기 제 4 단계에서 지역변수 테이블에 설치되어 있으면 다른 실행문을 파싱하여 변수의 존재 여부를 확인하는 상기 제 3 단계 이하를 수행하고, 테이블에 설치되어 있지 않으면 해당 실행 문의 쓰레드(thread) 번호에 의해 지역 변수 테이블을 설치하고, 그 지역 변수를 해당 쓰레드(thread) 번호에 의한 코드 변환한 후, 코드를 리스트에 생성하고, 병렬 구문이 종료되었는지를 확인하는 제 5 단계; 및
    병렬구문이 종료되지 않았으면 다른 실행문을 파싱하여 변수의 존재여부를 확인하는 상기 제 3 단계 이하를 수행하고, 병렬 구문 종료시에는 해당 병렬 실행 문의 쓰레드(thread) 번호로 지역 변수 테이블을 수정하고, 프로그램이 종료되면 리스트에서 쓰레드를 사용하여 번역된 프로그램을 출력하는 제 6 단계를 포함하여 이루어진 지역변수 테이블 설정방법.
KR1019960047755A 1996-10-23 1996-10-23 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법 KR100198956B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960047755A KR100198956B1 (ko) 1996-10-23 1996-10-23 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960047755A KR100198956B1 (ko) 1996-10-23 1996-10-23 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법

Publications (2)

Publication Number Publication Date
KR19980028627A true KR19980028627A (ko) 1998-07-15
KR100198956B1 KR100198956B1 (ko) 1999-06-15

Family

ID=19478588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960047755A KR100198956B1 (ko) 1996-10-23 1996-10-23 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법

Country Status (1)

Country Link
KR (1) KR100198956B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492131B1 (ko) * 1998-04-08 2005-08-01 한국항공우주산업 주식회사 웹 프로그램의 변수 전달 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101823129B1 (ko) 2016-11-24 2018-03-09 주식회사 실크로드소프트 컴퓨팅 장치의 리소스를 분배하는 컴퓨터 프로그램, 방법 및 장치
KR102468506B1 (ko) * 2016-11-24 2022-11-21 주식회사 실크로드소프트 컴퓨팅 장치의 리소스를 분배하는 컴퓨터 프로그램, 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492131B1 (ko) * 1998-04-08 2005-08-01 한국항공우주산업 주식회사 웹 프로그램의 변수 전달 방법

Also Published As

Publication number Publication date
KR100198956B1 (ko) 1999-06-15

Similar Documents

Publication Publication Date Title
US7962904B2 (en) Dynamic parser
USRE38104E1 (en) Method and apparatus for resolving data references in generated code
CN115639980A (zh) 一种低代码平台可拖拽的前端逻辑编排方法及装置
Fowler ‘The Fourth Generation Make
JPH05224949A (ja) 高水準形態抽象構文を中間形態へ変換する方法及び装置
CN117075909B (zh) 用于实现并行编程的编译方法、电子设备和介质
KR100198956B1 (ko) 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법
KR100246544B1 (ko) 고속병렬컴퓨터에서 병렬 구문에 의한 쓰레드 생성 방법
KR0176088B1 (ko) 병렬 컴파일러 및 그 제어 병렬화 설계방법
EP4196874A1 (en) Representing asynchronous state machine in intermediate code
Racordon From ASTs to Machine Code with LLVM
Piñeiro et al. Perldoop2: A big data-oriented source-to-source Perl-Java compiler
Creusillet et al. Interprocedural analyses of Fortran programs
Royuela Alcázar High-level compiler analysis for OpenMP
EP1785848A1 (en) Method and apparatus for semantic checking of program code
CN116560667B (zh) 一种基于预编译延迟执行的拆分调度系统及方法
Klein et al. Parallel one-pass compilation
Pahade et al. Introduction to Compiler and its Phases
RU2103727C1 (ru) Способ преобразования входного кода транслятора в объектный код и устройство для его осуществления
Šaikūnas Extensible parsing with Earley virtual machines
Triance et al. Macro Processors for Enhancing High-Level Languages–Some Design Principles
Koskimies et al. Incremental parser construction with metaobjects
Cooper et al. Achieving Incremental Compilation through Fine‐grained Builds
Sato Fast Compiler Re-Targeting to Different Platforms by Translating at Intermediate Code Level
Oguchi et al. Concurrent RSSA for CRIL: Flow Analysis for a Concurrent Reversible Programming Language

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080303

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee