오브젝트 파스칼(Object Pascal)은 클래식 매킨토시(Mac OS X 이전의 매킨토시)의 주력 언어 중 하나이다. 다른 하나는 C/C++, 또 다른 하나는 Java. 이미 C/C++/Java를 알고 있다고 가정하고 파스칼을 속성으로 익히기 위해 약간의 내용들을 정리해 둔다.
소스 코드의 기본 구조
파스칼 소스의 기본 구조는 다음과 같다.
// filename : main.p
program main;
{$APPTYPE CONSOLE}
var
num : integer;
begin
num := 10;
WriteLn('Hello, World!');
end.
한 줄씩 분석해 본다.
// filename : main.p
한 줄 주석은 // Comment
으로 C와 같다. 여러줄 주석은 (* Comment *)
으로서 괄호로 열고 닫음에 주의한다.
program [programName];
프로그램의 이름을 명시한다. 이 이름은 소스 파일 이름과 항상 같아야 한다.
{$APPTYPE CONSOLE}
이 프로그램이 콘솔에서 실행됨을 명시한다.
var
[variableName] : [VariableType]
파스칼은 변수 선언을 이렇게 한다. var로 지정한 영역 내에서만 변수 이름이 먼저 나오고 콜론으로 구분한 뒤에 자료형을 적는다. C에서 코드 수행 도중에 새 변수를 선언하지 못하는 것과 비슷하다.
파스칼에서 제공하는 기본 자료형은 다음과 같다.
논리 자료형
논리 자료형은 변수 크기에 무관하게 참은 1, 거짓은 0이다.
- ByteBool
- 1바이트를 차지하는 논리형이다.
- WordBool
- 2바이트를 차지하는 논리형이다.
- LongBool
- 4바이트를 차지하는 논리형이다.
- Boolean
- ByteBool에 alias되어 있다.
정수 자료형
- ShortInt / Byte
- 각각 부호 있는 1바이트 정수와 부호 없는 1바이트 정수이다.
- SmallInt / Word
- 각각 부호 있는 2바이트 정수와 부호 없는 2바이트 정수이다.
- LongInt / LongWord
- 각각 부호 있는 4바이트 정수와 부호 없는 4바이트 정수이다.
- Int64 / QWord
- 각각 부호 있는 8바이트 정수와 부호 없는 8바이트 정수이다.
- Integer / Cardinal
- 각각 부호 있는 정수와 부호 없는 정수이다. 아키텍처에 따라 크기가 달라지는데 일반적으로 Integer는 LongInt에, Cardinal은 LongWord에 alias되어 있다.
실수 자료형
- Single
- 4바이트 실수이다.
- Real48
- 6바이트 실수이다.
- Double
- 8바이트 실수이다.
- Extended
- 10바이트 실수이다.
- Comp
- 8바이트 실수이다. 유효숫자 19~20자리를 보장한다.
- Currency
- 8바이트 실수이다. 유효숫자 10~20자리를 보장한다.
문자 자료형
- AnsiChar
- 1바이트 아스키 문자를 표현한다.
- WideChar
- 2바이트 유니코드 문자를 표현한다.
- Char
- AnsiChar에 alias되어 있다.
문자열 자료형
NULL 문자로 끝나는 C-Style의 문자열과 달리 파스칼에서는 문자의 개수를 나타내는 정수가 먼저 오고 뒤이어 문자들이 따라온다. 이 정수의 크기 및 구성 문자의 형식에 따라 다음의 자료형을 지원한다.
- ShortString
- 정수부가 1바이트인 짧은 문자열이다. 구성 문자는 AnsiChar이다.
- AnsiString
- 정수부가 4바이트인 문자열이다. 구성 문자는 AnsiChar이다.
- WideString
- 정수부가 4바이트인 문자열이다. 구성 문자는 WideChar이다.
- PAnsiString
- 정수부가 없는 C-Style 문자열이다. 구성 문자는 AnsiChar이다.
- PWideString
- 정수부가 없는 C-Style 문자열이다. 구성 문자는 WideChar이다.
begin
(* TODO: something *)
end.
begin
과 end
는 스코프의 시작과 끝을 알리는 지시어이다. C에서 스코프의 시작과 끝을 알리는 중괄호 { }
에 해당한다. 다만 구분할 것이 있다면 다음과 같다.
- begin 뒤에는 세미콜론이 없다.
- 스코프의 끝을 알리는 end는 세미콜론으로 끝난다.
- 프로그램의 끝을 알리는 end는 마침표로 끝난다.
이 규칙에 따라 소스 코드 내에서 스코프의 중첩은 begin
[ + begin
+ end;
+ ] end.
의 구조를 갖는다.단, 마침표로 끝나는 end.
이후에 나오는 모든 문자들은 무시된다.
[variableName] := [something];
파스칼에서 대입 연산자는 :=
이다. 콜론이 빠진 =
는 두 피연산자의 일치 여부를 확인하는 비교연산자이다.
아래는 실행 결과이다.
'Operating System Theme > Mac OS (Classic)' 카테고리의 다른 글
[App] Stuffit Deluxe (0) | 2018.01.21 |
---|---|
Object Pascal 속성 문법 #2 조건문과 반복문 (0) | 2017.08.02 |
SheepShaver 에뮬레이터 및 Mac OS 9.0.4의 설치 #5 (완결) (1) | 2017.07.28 |
SheepShaver 에뮬레이터 및 Mac OS 9.0.4의 설치 #4 (0) | 2017.07.27 |
SheepShaver 에뮬레이터 및 Mac OS 9.0.4의 설치 #3 (0) | 2017.07.26 |