토큰(Token)은 소스 코드에서 문법적으로 기본이 되는 요소를 의미한다. 토큰은 언어의 단어(Word)이며, 문자는 프로그래밍 언어의 규칙에 의하여 토큰으로 합쳐진다. 토큰은 크게 아래와 같이 나눌 수 있다.
- 예약어 : 프로그래밍 언어에서 고정된 의미를 갖는 단어로, 변경하거나 재정의할 수 없음.
- 식별자 : 프로그래머가 정의하는 기호의 이름으로, 변경해서 재사용할 수 있음.
- 연산자 : 대표적으로 사칙연산 등이 있음.
- 구분자 : 대표적으로 공백이 있음.
- 상수 : 대표적으로 1과 같은 정수 상수, 2.3과 같은 부동 소수점 상수, "string"과 같은 문자열 상수 등이 있음.
Free Pascal의 기본 자료형은 부동 소수점 자료형을 제외하면 모두 서수형으로 처리되며, 서수형의 특성은 아래와 같다.
- 서수형은 셀 수 있고 순서가 정해져 있다. 이 속성은 Inc, Ord, Dec 등의 함수 사용을 허용한다.
- 서수형은 가능한 가장 작은 값과 가장 큰 값을 가지며, 범위 검사(Range Checking) 활성화 상태에서 Pred 또는 Succ 함수의 결과가 자료형의 범위를 벗어나면 오류가 발생한다.
정수 자료형의 표현 가능한 범위 및 크기는 아래와 같다. 표현 가능 범위에서 [] 괄호는 이상과 이하를, () 괄호는 초과와 미만을 의미한다.
자료형 | 표현 가능 범위 | 크기 (Byte) |
Byte | [0, 28) | 1Byte |
Shortint | [-27, 27) | 1Byte |
Smallint | [-215, 215) | 2Byte |
Word | [0, 216) | 2Byte |
Longint | [-231, 231) | 4Byte |
Longword | [0, 232) | 4Byte |
Int64 | [-263, 263) | 8Byte |
QWord | [0, 264) | 8Byte |
Integer | Smallint 또는 Longint | 2Byte (Smallint) 또는 4Byte (Longint) |
Cardinal | Longword와 같음 | 4Byte |
Integer 자료형은 Free Pascal Mode에서는 Smallint와 같고, Delphi 또는 Object Pascal Mode에서는 Longint와 같다. Cardinal 자료형은 Longword 자료형과 같다.
Boolean 자료형은 기본적으로 참과 거짓(True/False)만을 가질 수 있다. 추가적으로 C언어 연동 자료형이 있다고 한다.
실수 자료형은 IEEE 754의 부동 소수점을 저장하는 자료형이다. IEEE 754 부동 소수점 표현은 부호, 지수, 가수 부분으로 이루어지는데, 자료형별 비트 구성 및 표현 가능 범위는 아래와 같다. 자료형의 특성으로 인하여 오차가 발생할 수 있다.
자료형 | 지수 bit | 가수 bit | 표현 가능 범위 | 크기 (Byte) |
Real | (플랫폼 의존적) | (플랫폼 의존적) | (플랫폼 의존적) | 4Byte / 8Byte |
Single | 8bit | 23bit | 2-149 ~ 2127×(2-2-23) | 4Byte |
Double | 11bit | 52bit | 2-1074 ~ 21023×(2-2-52) | 8Byte |
Extended | 15bit | 63bit | 2-16445 ~ 216383×(2-2-63) | 10Byte |
이 외에도 열거형, 문자형, 문자열형 등이 있다.