The Design of a Functional Language which has an Annotation Syntax and Implmentation of the Front-end of the Translator for the Language

Annotation을 가지는 함수언어의 설계 및 번역기 전반부 구현

  • 최관덕 (대구전문대학 전자계산과)
  • Published : 1998.03.01

Abstract

There are two major method for expressing parallelim in functional languages. The one is the strictness analysis and the other the annotation. The strictness analysis is a method that a compiler detects parallelism and expresses the detected information in the object program. The annotation is a method that a programmer detects parallelism and expresses in the source program. This study is on the annotation and is aimed at construction of a translator for a functional language which has an annotation syntax. The translator translates a source program to enriched lambda-calculus graphs. The translator is implemented in C using compiler development tools such as YACC and Lex, under UNIX environments. In this paper we present the design and implementation techniques for developing the front-end of the translator.

함수 언어에서 병렬성을 표현하는 주된 기법으로는 스트릭트니스 분석과annotation이 있다. 스트릭트니스 분석은 번역기가 병렬성 탐색을 수행하여 탐색된 정보를 목적 프로그램에 표현하는 기법이며, annotation은 프로그래머에게 병렬성 탐색을 맡겨서 원시프로그램에 표현하도록 하는 기법이다. 본 연구는 annotation에 관한 것으로 annotation 구문을 가지는 원시함수 언어와 이를 위한 번역기의 전반부를 설계하고 구현하는 것을 목적으로 한다. 번역기의 전반부는 원시함수언어 프로그램을 중간 언어인 확장 람다계산 프로그래프로 번역한다 번역기는 UNIX 환경에서 컴파일러 자동화 도구인 YACC, Lex를 사용하여 C로 구현한다. 본 논문에서는 번역기에 사용된 구현기법에 대해서 기술한다.

Keywords