현대 Object Pascal 완벽 입문 가이드
원제 Modern Object Pascal Introduction for Programmers
117 포인트댓글 40

Key Point
Turbo Pascal의 이미지를 벗은 현대 Object Pascal의 실체를 체계적으로 설명하는 자료로, 기존 개발자가 빠르게 언어를 습득할 수 있도록 C계열 언어와의 구체적 차이점을 명시하고 있다.
핵심 요약
- Castle Game Engine 제작자가 작성한 Object Pascal 프로그래밍 언어 입문서로, 프로그래밍 경험이 있는 개발자를 대상으로 한다.
- Pascal은 클래스, 인터페이스, 제네릭 등 현대적 기능을 갖춘 언어로 C++, Java, C#과 유사한 수준의 기능성을 제공한다.
- 오픈소스 Free Pascal Compiler(FPC)와 상용 Delphi 컴파일러, 그리고 Lazarus IDE를 포함한 활발한 생태계가 갖춰져 있다.
- 변수, 함수, 조건문, 루프, 케이스 문, 열거형 등 기본 언어 기능을 설명하며 C계열 언어와의 차이점을 명시한다.
- Pascal의 if-else는 괄호가 필요 없고, case 문에서는 C의 switch와 달리 자동 폴스루(fall-through)가 없는 장점이 있다.
- for 루프는 정수 범위 반복에 최적화되어 있으며, for-in 루프는 배열, 열거형, 집합, 커스텀 리스트를 순회할 수 있다.
- 문자열 출력은 Write/WriteLn 사용, 숫자 변환은 IntToStr/FloatToStr 함수 또는 Format 함수(sprintf 유사)로 처리한다.
- 유닛(module)은 인터페이스와 구현 섹션으로 나뉘며, 순환 참조는 최소한 하나가 구현부에서만 사용되면 허용된다.
- 클래스는 필드, 메서드, 프로퍼티를 포함하는 컨테이너이며, virtual 키워드로 메서드를 가상화하여 런타임에 실제 클래스의 구현을 호출한다.
- 메서드 오버라이드는 override 키워드로 표시해야 하며, virtual 메서드는 선언된 타입이 아닌 실제 인스턴스의 클래스에 따라 호출 대상이 결정된다.
- 메서드를 숨길 때는 reintroduce 키워드를 사용하며, 기본적으로 메서드는 가상화되지 않아 명시적으로 선언해야 한다.
- 클래스 인스턴스는 메모리를 할당하여 필드 값을 저장하는 방식으로, 클래스 자체는 템플릿일 뿐 메모리를 예약하지 않는다.