Compilers/ko

From Free Pascal wiki

Deutsch (de) English (en) español (es) français (fr) italiano (it) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

Pascal 컴파일러 (저자: Tao Yue, 상태: 변경없음)

이 문서는 컴파일러에 대한 기초에 대해 설명을 할 것이고, 또한 잘알려진 파스칼 컴파일러의 링크를 제공할 것이며, Free Pascal을 어떻게 준비하는지에 대해 설명할 것이다.

컴퓨터 언어와 컴파일러에 대해

컴퓨터 언어에 대해 말할 때는 기본적으로 세개의 주로 언급하게 된다.

  1. 기계어 -- 컴퓨터 CPU에 기본 명령을 지시하는 실제 2진 코드이다. 두개의 숫자를 더하거나, 어느 메모리에 있는 내용을 다른 곳으로 옮기는 것 같은 주로 매우 간단한 명령어이다.
  2. Assembly 언어 -- 2진 수자들을 기억하지 않고 컴퓨터에 직접 프로그램을 할 수 있는 사람을 위한 방법이다. 이는 기계어와 1대1로 매칭이 된다. 예를 들자면, 인텔 x86 기계어의 경우, 어셈블리 ADD 와 MOV는 덧벰과 데이터 이동 명령어이다.
  3. 고수준 언어 -- 사람이 어셈블리처럼 1:1로 프로그램하는 것 없이 복잡한 프로그램을 작성할 수 있도록 한다. 고수준 언어엔 파스칼, C, C++, FORTRAN, Java, Basic 등등이 있다. 고수준 언어의 한 명령, 예를 들어 한 문자열을 파일에 기록하기와 같은 명령은 수십, 수백개의 기계어로 변환 되기도 한다.

마이크로프로세서는 오로지 기계어 프로그램만 직접적으로 실행할 수 있다. 어셈블리 언어 프로그램은 기계어로 변환된다. 고수준 언어로 쓰여진 프로그램과 같이 기계어로 변활 되어야만 한다. 이와 같은 변환하는 작업을 프로그램을 컴파일 한다고 한다.

이러한 변환작업을 하는 프로그램을 컴파일러라고 부른다. 이 프로그램은 복잡한데, 단순히 코드를 기계어로 바꾸는 것 뿐만 아니라, 자주 수행 속도를 빠르게 하기 위한 최적화 작업도 수행하고, 오류 수정 코드로 추가하며, 다른 곳에 저장된 서브루틴과 연결을 하기도 하기 때문이다. 예를 들어, 컴퓨터에게 화면에 뭔가를 출력하도록 할 때, 컴파일러는 이를 미리 기록된 모듈을 호출하는 것으로 변환한다. 그다음엔 작성된 프로그램은 최종적으로 실행가능한 프로그램으로 변환되기 전, 컴파일러의 제조회사가 제공하는 코드와 연결을 하는 작업을 거쳐야 한다.


고수준 언어의 경우, 다음과 같은 3가지를 기억해야 한다.

  1. 소스 코드 -- 프로그래머가 작성한 코드. 일반적으로 코드의 확장자는 작성한 언어를 지칭한다. 예를 들어 파스칼의 소스코드 파일이름은 일반적으로 ".pas" 로 끝나며, C++ 코드는 일반적으로 ".cpp"로 끝난다.
  2. 목적 코드(Object code) -- 컴파일의 결과이다. 목적코드는 일반적으로 프로그램의 한 모듈만을 포함하고, 아직 완전한 것이 아니기 때문에 실행할 수 없다. DOS/Windows 시스템에선, 일반적으로 ".obj"라는 확장명을 갖는다.
  3. 실행 코드 (Executable code) -- 최종 결과물이다. 프로그램에 필요한 모든 목적코드가 서로 연결된다. DOS/Windows 시스템에선, 일반적으로 ".exe"라는 확장명을 갖는다.

컴파일러에 대한 추가내용

DOS와 Windows 기반 컴파일러에서 de facto 표준은 볼랜드 파스칼이다. 이게 나오기 전, 거의 모든 파스칼 컴파일러는 깔끔하지 못하고 느렸다. 거기다 표준 파스칼에서 벗어난데다 가격도 수백 달러에 다다랐다. 1984년 볼랜드는 Turbo Pascal을 공개했고, $100 미만이었다. 기존의 컴파일러보다 두두러지게 빠르게 컴파일을 했고, 풍부한 소스코드와 유틸리티 프로그램과 함께 제공되었다.

이 제품은 대단한 성공을 거두었고, 거의 10년간 두각을 나타냈었다. 그러나 1990년대, 세상은 Windows로 옮겨갔다. 1993년 마지막 도스용 터보 파스칼 버젼 7이 출시됐다. 그 후, DOS 프로그램의 요구는 급감했고, 볼랜드는 Windows용 컴파일러에 초점을 맞췄다.

이 강좌는 화면에 문자를 출력하고 사용자로부터 키보드 입력을 받는 식의 콘솔을 기반으로 한 프로그램만을 다룰 것이다. 이 강좌의 목적은 파스칼로 프로그램을 만드는 방법을 가르치는 것이다. 이 강좌를 모두 끝내고 나면, 쉽게 레퍼런스나 다른 웹 자료를 이해할 수 있을 것고, 그래픽이나 윈도우 시스템을 혼자서 공부할 수도 있을 것이다.

오래된 상용 파스칼 컴파일러 가끔 다운로드 받을 수 있기는 하지만, Turbo Pascal 5.5는 Borland 박물관 에서, Symantec Think Pascal (Macintosh) 는 The Free Country's Free Pascal 컴파일러 목록에서 찾을 수 있다. 컴퓨터는 1980년대 와 1990년대 초기부터 상당히 많이 발전해왔다. 더이상 DOS의 8.3 파일명이나 , Mac OS의 비 선점형 멀티태스킹에 묶여있지 않다. 오래된 컴파일러는 이용하는 것은 마치 오래된 게임을 에뮬레이터를 이용해 즐기는 것과 같이 재미있는 일이다. 그러나 오픈소스 진영은 현대의 운영체계에서 돌아가는 훌륭한 컴파일러는 제공해왔고, 초보자들은 이런 컴파일러를 이용하는데 더욱 사용하기 쉬운 것을 찾을 것이다.

오픈 소스 컴파일러

주요 오픈 소스 컴파일러 2개는 다음과 같다.

Free Pascal은 일반적으로 초보자에게 더 사용하기 쉬우며, 볼랜드 파스칼을 여러면에서 쫓아가기 위해 노력했다. 어쨌든 두 가지 모두 파스칼을 배우기에 적당하다.

이 강좌를 보는 거의 모든 사람들은 Windows를 사용할 것이기 때문에, 아래는 Free Pascal을 설정하고, 현대의 Windows 운영체계에서 작성한 프로그램을 컴파일 하는 법에 관한 내용이다.

  1. Free Pascal 용 Win32 설치프로그램을 다운로드 받는다. Free Pascal 다운로드 페이지.
  2. 다운로드 받은 실행하여 Free Pascal 설치 마법사를 따라 간다.
  3. Free Pascal을 실행한다.(기본 설정으로 Start -> Free Pascal에서 찾을 수 있다.)
  4. 프로그램을 작성한다. (오른쪽의 링크에서 다음 강좌 "Hello, world." 프로그램을 다운로드 받는다.).
  5. File-Save As ... 메뉴를 선택하여 프로그램을 저장한다.
  6. Run 메뉴에서 프로그램을 실행한다. 이는 작성한 프로그램에 변화가 있다면 자동으로 작성한 프로그램을 컴파일하여 프로그램을 실행할 것이다. 만약 최후에 컴파일 한 후, 프로그램에 수정이 없다면, 컴파일은 생략한체 프로그램을 실행시킬 것이다.

사용자가 입력을 하지 않아도 되는 프로그램이라면, 검은 스크린에 프로그램이 반짝하는 것을 볼 수 있을 것이다. 그러나, 프로그램이 눈깜짝 사이에 실행되고 IDE로 결과도 보지 못한체 돌아오게 될 것이다. 이를 해결하는 2가지 방법이 있다.

  • Debug 메뉴에서 User screen을 선택하면, 프로그램의 결과를 볼 수 있다.
  • 프로그램 마지막에 readln 이라는 명령어를 추가한다. 그러면 프로그램은 사용자가 Enter키를 입력할 때 까지 기다리며 IDE로 돌아가지 않을 것이다.

Userscreen.png

주: .exe 파일은 프로그램을 저장한 같은 디렉토리에 만들어진다. 이 파일은 실행가능한 파일이다. 커맨드 프롬프트에서 파일이 저장된 디렉토리로 이동한 후, 이 실행파일을 직접 실행해도 된다. 또한 윈도우 탐색기에서 더블 클릭을 해도 되는데, 만일 사용자 입력이 없는 프로그램이라면 이 역시 순식간에 프로그램이 실행되고 종료될 것이다.


previous contents next