본문 바로가기
컴파일러

1장 컴파일러 개론

by 상레알 2009. 9. 14.
컴파일러 란 언어 번역기 중 하나로 고급 언어 프로그램을 입력으로 받아 의미적으로 동등하면서 직접 기계에서 실행 될 수 있는 형태로 번역하는 작업을 한다.

일반적인 컴파일구조

  어휘 분석   <-SP
        |
        |   TOKEN
   구분 분석       <- 문법 체크
        |
        |Tree   (파스 트리)
 중간 코드 생성
        |
        | 중간코드 생성
코드 최적화
        |
        |
타갯코드 생성

---------------------------------------

인터넷 프로그램이란 웹 브라웆저에서 실행될 수 있는 프로그램을 의미하며 인터넷 프로그램을 작성하는 일을 인터넷 프로그래밍이라 정의 할 수 있다. 이와 같은 언어는 크게 서버사이드 언어와 클라이언트사이드 언어로 구분할 수 있으며, 전자에 속하는 언어로는 PERL, PHP, ASP, JSP 등이 있고 후자에 속하는 언어로는 HTML(Hyper Text Markup Language), DHTML, 자바스크립트, 자바 애플릿 등이 있다.


컴퓨터의 응용 범위가 넓어짐에 따라 수많은 프로그래밍 언어들이 창안되고 끊임없이 수정되고 개선되잠ㄴ 좋은 프로그래밍 언어의 요건은

(1) 언어의 개념이 명료해야 한다. 문법적인 구조(sysntax)와 그에 따른 의미(semantic)가 일관성 있으며 단순해야 한다.
(2) 프로그래머의 생각을 자연스럽게 표현할 수 있어야 한다.
(3) 프로그램의 호환성, 신뢰성, 모듈화, 효율성 등이 좋아야 한다.
(4) 언어의 확장성이 우수해야 한다.
(5) 좋은 프로그래밍 환경을 갖고 있어야 한다.

고급 언어로 작성된 프로그램이 컴퓨터에서 실행되기 위해서는 컴퓨터가 직접 이해할 수 있는 언어로 바꾸어 주어야 한다. 이와 같은 일을 하는 프로그램을 컴파일러라 부르는데, 고급언어로 작성된 프로그램을 실행하는 데 있어 그와 의미적으로 동등하며 실행될 수 있는 형태의 프로그램으로 부꾸어 실행한다.

1.2 번역기와 컴파일러

번역기란 한 프로그래밍 언어로 작성된 프로그램을 입력으로 받아 그와 동등한 의미를 갖는 다른 프로그래밍 언어로 된 프로그램을 출력하여 주는 시스템 프로그램을 말한다.
이때 입력되는 프로그램을 소스 프로그램이라 하고 이 프로그램을 기술한 언어를 소스 언어라 한다. 그리고 출력되는 프로그램을 목적 프로그램이라 하고 이 프로그램을 기술한 언어를 목적 언어(object language 또는 target language)라 한
다. 소스 프로그램이 일단 실행 가능한 프로그램으로 바뀌면 소스 프로그램을 수정하지 않는 한 필요할 때마다 반복 실행할 수 있다.

로더의 출력인 실행 가능한 프로그램을 일반적으로 로드 모듈 이라 부르며 주 기억 장치의 사용자 영역에 적재되어 운영체제와 실행 환경의 도움을 받아 실행되어 결과를 출력한다.

크로스 컴파일러란 소스 프로그램을 컴파일러가 실행되고 있는 기계에 대한 기계어로 번역하는 것이 아니라 다른 기종에 대한 기계어로 번역하는 컴파일러를 말한다.        -18p 까지 했음. 귀찮다 더이상은