맨위로가기

프리 파스칼

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프리 파스칼은 볼랜드 파스칼의 대안으로 개발된 오픈 소스 파스칼 컴파일러이다. 1993년 터보 파스칼 방언 컴파일러 개발을 시작으로, 델파이 호환성을 목표로 발전해왔다. 다양한 CPU 아키텍처와 운영체제를 지원하며, 자체 IDE와 라자루스를 포함한 여러 IDE를 제공한다. 런타임 라이브러리(RTL)와 프리 컴포넌트 라이브러리(FCL)를 통해 기본적인 프로그래밍 작업과 데이터베이스, 네트워킹, XML 처리 등 다양한 기능을 지원한다.

더 읽어볼만한 페이지

  • 파스칼 (프로그래밍 언어) - 니클라우스 비르트
    스위스의 컴퓨터 과학자 니클라우스 비르트는 ALGOL W, 파스칼, 모듈라-2, 오베론 등의 프로그래밍 언어와 오베론 운영체제 설계, 컴파일러 설계 및 소프트웨어 개발 방법론에 기여했으며, "알고리즘 + 데이터 구조 = 프로그램" 저술과 "Program Development by Stepwise Refinement" 논문을 통해 컴퓨터 과학 교육에 혁신적인 영향을 미치고 1984년 튜링상을 수상했다.
  • 파스칼 (프로그래밍 언어) - 델파이
    델파이는 앤더스 헤일스베르그가 개발한 파스칼 기반의 객체 지향 프로그래밍 언어이자 다양한 플랫폼을 지원하며 빠른 애플리케이션 개발을 돕는 RAD 개발 환경이다.
  • 파스칼 컴파일러 - 터보 파스칼
    필립 칸이 개발하고 안데르스 헤일스베르그가 기반을 다진 터보 파스칼은 저렴한 가격, 빠른 컴파일, 사용하기 쉬운 IDE를 특징으로 1980년대 PC 프로그래밍에 혁신을 가져왔으며, 여러 기능 추가를 거쳐 델파이 등장 후 레거시 기술이 되었고 일부 버전은 프리웨어로 배포된다.
  • 파스칼 컴파일러 - GNU 컴파일러 모음
    GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다.
  • 파스칼 프로그래밍 언어 계열 - 파스칼 (프로그래밍 언어)
    파스칼은 니클라우스 비르트가 구조적 프로그래밍 교육과 시스템 소프트웨어 개발을 위해 설계한 언어로, 프로그래밍 입문 언어로 널리 쓰였으며 애플의 주요 개발 언어로 사용되었고, 다양한 변형이 여러 분야에서 활용되고 있으며 현재도 여러 컴파일러가 존재한다.
  • 파스칼 프로그래밍 언어 계열 - 모듈라
프리 파스칼 - [IT 관련 정보]에 관한 문서
기본 정보
이름프리 파스칼
원어 이름Free Pascal
종류컴파일러, 임베디드 운영 체제
프로그래밍 언어오브젝트 파스칼
개발자Florian Klämpfl & 자원봉사자
라이선스GPL (컴파일러 및 유틸리티 실행 파일용). LGPL (컴파일러로 생성된 실행 파일의 일부가 되는 런타임, 패키지, 컴포넌트 및 기타 라이브러리용, 정적 링크 예외 포함)
웹사이트www.freepascal.org
릴리스 정보
최초 릴리스1997년
최신 버전3.2.2
최신 버전 릴리스 날짜2021년 5월 20일
최신 평가 버전3.3.1
최신 평가 버전 릴리스 날짜2018년 8월 18일
기술 정보
지원 운영 체제크로스 플랫폼, 임베디드 시스템

2. 역사

1993년 볼랜드터보 파스칼 개발을 중단하고 윈도우 전용 델파이를 출시하면서 프리 파스칼 개발이 시작되었다. 당시 학생이었던 플로리안 파울 클램플은 터보 파스칼 방언으로 컴파일러 개발을 시작했다. 초기에는 FPK 파스칼로 불렸으나, 1997년 말에 프리 파스칼 컴파일러(FPC)로 이름이 변경되었다.[1]

초기 컴파일러는 16비트 도스 실행 파일이었으나, 2년 후 자체 컴파일이 가능한 32비트 실행 파일이 되었다. 인터넷을 통해 여러 개발자들이 참여하면서 리눅스, OS/2, Win32 등 다양한 플랫폼으로 확장되었다.[1]

2. 1. 초기 (1993년 ~ 2000년)

1993년, 플로리안 파울 클램플은 터보 파스칼 방언을 사용하는 자체 컴파일러 개발을 시작했다. 초기 컴파일러는 16비트 도스 실행 파일이었으나, 2년 후 자체 컴파일이 가능한 32비트 실행 파일이 되었다. 이 컴파일러는 당시 DJGPP 프로젝트에서 사용하고 개발한 GO32v1 DOS 확장자용 32비트 코드를 생성했다.

1997년 말, FPK 파스칼은 혼동을 피하고 기여를 늘리기 위해 프리 파스칼 컴파일러(Free Pascal Compiler, FPC)로 이름을 변경했다.[1]

2. 2. 확장기 (2000년 ~ 2005년)

1.0.x 릴리스는 기업 및 교육 분야에서 널리 사용되었다.[1] 모토로라 68000 계열(m68k) 프로세서를 사용하는 시스템으로 다시 포팅되었다.[1]

1999년 12월, 코드 생성기의 한계를 극복하기 위해 1.1.x 시리즈가 1.0.x에서 분기되었다.[1] 코드 생성기 및 레지스터 할당기가 다시 작성되었고, 델파이 호환성이 추가되었다.[1]

2003년 말, PowerPC 포트가 출시되었다.[1] 2004년에는 ARM, SPARC, x86-64(AMD64) 포트가 출시되어 64비트 플랫폼 지원이 시작되었다.[1]

2003년 11월, 1.1.x 브랜치의 첫 베타 릴리스 (1.9.0)가 출시되었다.[1] 2005년 1월, 1.9.6이 출시되었고,[1] 2005년 2월에는 1.9.8이 출시되었다.[1] 2005년 5월, 2.0.0이 출시되었고,[1] 2005년 12월에는 2.0.2가 출시되었다.[1]

2. 3. 발전기 (2006년 ~ 현재)

2.2.x 시리즈는 라자루스 통합 개발 환경(IDE) 프로젝트의 요구 사항에 맞춰 개발되었다. 특히 내부 링커, Win64, Windows CE, x86 기반 OS X 지원과 관련된 기능에 집중했다.[1] 액티브X와 구성 요소 객체 모델(COM) 인터페이스, 개체 연결 및 포함(OLE)에 대한 지원이 크게 향상되었고, `implements` 키워드를 사용한 인터페이스 위임은 부분적으로 구현되었다.[1] 또한, 액티브X 라이브러리 지원도 개선되었다. Win32, Win64, Windows CE용 내부 링커는 링킹 시간과 메모리 사용을 크게 개선하여 라자루스에서 컴파일-링크-실행 주기를 빠르게 만들었다. 스마트 링킹(데드 코드 제거) 효율성도 향상되었다. 향상된 DWARF (2/3) 디버그 형식 지원, 꼬리 호출, 불필요한 스택 프레임 생략, 레지스터 기반 공통 부분 표현식 제거(CSE) 최적화 등의 기능도 추가되었다. 제네릭 프로그래밍 (제네릭) 지원의 첫 번째 구현도 실험적으로 제공되었다. 2007년 9월, 버전 2.2.0이 출시되었고,[1] 2008년 8월에는 버전 2.2.2,[1] 2009년 3월에는 버전 2.2.4가 출시되었다.[1]

2.4.x 릴리스는 이전보다 목표가 덜 명확했다. 유닛 시스템 재작업은 연기되었고, 2.4 분기는 2.2에서 위험한 커밋을 안정화하기 위해 만들어졌다. 주로 Mac PowerPC 64, Mac x86-64, iPhone 플랫폼 개선, ARM 및 x86-64 아키텍처 수정, DWARF 개선 등이 이루어졌다. 전체 프로그램 최적화(WPO), 가상 함수 제거, ARM 내장형 애플리케이션 바이너리 인터페이스(EABI) 지원도 추가되었다. 2.2 주기 동안 델파이와 유사한 리소스 지원이 추가되었는데, 이는 라자루스에서 매우 필요했던 기능이었다. 메모리 관리자, `OleVariant` 등 델파이 호환성, 인터페이스 위임도 개선되었다. 2010년 1월 1일, Free Pascal 2.4.0이 출시되었고,[2] 2010년 11월 13일에는 2.4.2가 출시되어 `for..in` 루프, `sealed` 및 `abstract` 클래스 등이 지원되었다.[2]

2.6.x 릴리스는 OS X 및 iOS 타겟에서 오브젝티브 파스칼을 지원하고, 여러 개선 및 버그 수정을 포함했다. 2012년 1월, 프리 파스칼 2.6이 출시되었다. 2013년 2월, FPC 2.6.2는 NetBSDOpenBSD 릴리스를 포함했다. 2014년 3월, 2.6.4는 데이터베이스(fcl-db) 업데이트를 중심으로 출시되었다.

3.0.x 릴리스는 많은 새로운 언어 기능을 도입했다.[3] 2015년 11월, 버전 3.0.0이 출시되었다. 2017년 2월, 버전 3.0.2, 2017년 11월에는 버전 3.0.4가 출시되었다. 3.0.4에는 실행 및 연결 가능한 형식(ELF) 내부 링커, iOS 및 Linux용 Arm AARCH64, i8086 플랫폼, 확장된 라이브러리 등이 포함되었다.

3.2.x 릴리스는 새로운 표준 유닛, 추가 플랫폼, 제네릭 루틴, 표준 네임스페이스, 관리 레코드, 동적 배열 확장 등 새로운 기능을 도입했다.[4] 2020년 6월, 버전 3.2.0이 출시되었다. 2021년 5월, 버전 3.2.2는 AArch64 기반 macOS, 스레드 이름 지정 기능을 지원한다.[5]

3. 지원 플랫폼

프리 파스칼은 다양한 CPU 아키텍처와 운영체제를 지원한다. 지원되는 플랫폼은 버전에 따라 다소 차이가 있다.

프로세서 아키텍처운영체제, 장치버전 3.2.2 또는 3.3.1 (Trunk)버전 3.0.0 - 3.2.0버전 2.6.2버전 2.6.0버전 2.4.4버전 2.4.2버전 2.4.0버전 2.2.4버전 2.0.x버전 1.0.x
i386DOS (GO32v2 익스텐더)
FreeBSD
OpenBSD아니요아니요아니요아니요아니요아니요
NetBSD아니요아니요아니요아니요아니요아니요
리눅스
macOS아니요아니요
OS/2
Windows
윈도우 CE아니요아니요아니요
BeOS
Haiku아니요아니요아니요
NetWare아니요
Solaris아니요아니요아니요
iPhone Sim아니요아니요아니요아니요아니요아니요
QNX Neutrino아니요아니요아니요아니요아니요아니요아니요아니요
Android아니요아니요아니요아니요아니요아니요아니요
AROS아니요아니요아니요아니요아니요아니요아니요아니요
x86-64FreeBSD아니요아니요아니요아니요
OpenBSD???????
NetBSD???????
리눅스?아니요
macOS아니요아니요아니요
Windows아니요아니요아니요
Solaris아니요아니요아니요아니요



베타 버전으로 구동되는 플랫폼은 다음과 같다.


  • BeOS
  • OpenBSD/x86 (한때 베타 버전 존재)
  • SunOS, 솔라리스
  • QNX
  • 윈도우 CE

3. 1. CPU 아키텍처

프리 파스칼은 다양한 CPU 아키텍처를 지원한다. 주요 지원 대상은 다음과 같다.

아키텍처설명지원 버전
IA-32인텔 80386 및 호환 기종모든 버전
AMD64AMD의 64비트 확장 (x86-64)1.1.x 이후 (2004년 초 추가)
PowerPC1.1.x 이후 (2003년 말 추가)
ARM1.1.x 이후 (2004년 여름~가을 추가)
SPARC버전 8 이후1.1.x 이후 (2004년 여름~가을 추가)
m68k1.0.x 및 일부 버전
i80863.0.4부터
JVM3.0.0부터



1.1.x 버전부터는 코드 생성기와 레지스터 할당기가 재작성되어, PowerPC, ARM, SPARC, AMD64 등의 프로세서 지원이 추가되었다.

3. 2. 운영체제

프리 파스칼은 다양한 운영체제를 지원한다.

운영체제지원 여부
Win32, Win64, Windows CE
Linux
macOS
iOS, iPhone Sim
FreeBSD
NetBSD
OpenBSD
OS/2, eComStation
DOS (GO32v2 익스텐더 사용)
Android
Haiku
Solaris
QNX일부 버전
BeOS일부 버전
NetWare일부 버전
AROS


4. 언어 사양 및 확장

프리 파스칼은 오브젝트 파스칼 외에도 터보 파스칼, 델파이, 과거 매킨토시 컴파일러 방언 등 다양한 파스칼 방언을 지원한다. 볼랜드 파스칼과 델파이를 사실 표준으로 채택하고 있으며, macOS와의 인터페이스를 위해 애플 파스칼 문법도 일부 지원한다.

컴파일러는 여러 "컴파일 호환 모드"를 제공한다:


  • Default (ANSI/ISO 표준) 모드
  • 델파이 호환 모드
  • 터보 파스칼 호환 모드
  • FPC 모드
  • Object Pascal 모드
  • Mac Pascal 모드

4. 1. 델파이와의 호환성 강화

버전 2.0부터 델파이 7과의 호환성이 지속적으로 개선되었다. 델파이에서 지원되기 여러 해 전인 버전 2.2.0에서 [https://www.freepascal.org/docs-html/ref/refch8.html#x102-1240008 제네릭] 지원이 추가되었다.

2011년에는 델파이 2006 특정 기능이 개발 분기에 추가되었으며, 델파이 2009에 새로 추가된 기능(특히 `UnicodeString` 타입 추가)에 대한 일부 초기 작업이 완료되었다.

2.4.2 버전에서는 `for..in` 루프, `sealed` 및 `abstract` 클래스 지원이 적용되었다.[2]

4. 2. 오브젝티브 파스칼 지원

FPC 2.6 버전부터 macOS 및 iOS를 대상으로 하는 오브젝티브 파스칼을 지원한다. 이는 코코아 프레임워크와의 인터페이싱을 지원한다.[1] 2012년 1월에 출시된 FPC 2.6.0은 중첩된 타입, 클래스 변수, 클래스/타입 도우미, 레코드의 `for..in` 등 델파이 호환성을 향상시키는 여러 기능이 구현되었다. 또한 macOS 및 iOS를 대상으로 하는 오브젝티브 파스칼 방언을 지원하게 되었다.[2]

4. 3. ISO 파스칼 표준 모드

프리 파스칼은 기본적인 ISO 파스칼 모드를 구현하고 있으며, 버전 3.0.0에서 상당히 완성되었다.[1] 표준 파스칼의 P5 컴파일러를 변경 없이 컴파일할 수 있게 되었다.[1] 버전 2.7.1에서는 기본적인 ISO 파스칼 모드를 구현했지만, `Get` 및 `Put` 프로시저, 파일 처리를 위한 파일 버퍼 변수 개념과 같은 많은 기능이 여전히 부재했다.[2]

5. 통합 개발 환경(IDE)

프리 파스칼은 볼랜드터보 파스칼과 비슷한 자체 텍스트 모드 통합 개발 환경(IDE)을 제공한다. 이 IDE는 터보 비전을 기반으로 만들어졌으며, 2005년 중반 이후 2006년 초 사이에 주요 버그들이 수정되어 안정성이 향상되었다.

리눅스에서 독일어"Hello, World!" 프로그램을 보여주는 프리 파스칼 IDE


터보 파스칼 IDE의 기능뿐만 아니라 코드 완성, 다양한 형식의 도움말 파일(HTML, 마이크로소프트 컴파일 HTML 도움말(CHM), 정보 제공 기능(IPF)) 지원 등 추가적인 기능을 제공한다. IDE는 명령 줄 도구 대신 자체 내장 컴파일러를 사용하며, 이는 명령 줄 컴파일러 및 디버거와 같은 소스를 기반으로 한다(libgdb 또는 GDBMI 사용).

5. 1. 라자루스(Lazarus)

라자루스 IDE 윈도우 10


라자루스는 프리 파스칼 프로그래머들이 가장 많이 사용하는 IDE이다. 델파이 IDE와 모양과 느낌이 비슷하며, 콘솔 응용 프로그램, 그래픽 사용자 인터페이스 응용 프로그램, 윈도우 서비스, 데몬, 웹 애플리케이션을 만드는 데 사용할 수 있다. 라자루스는 라자루스 컴포넌트 라이브러리 (LCL)라는 크로스 플랫폼 사용자 인터페이스 프레임워크를 제공한다. LCL로 만든 그래픽 응용 프로그램은 재컴파일 또는 크로스 컴파일을 통해 다른 플랫폼으로 이식할 수 있다.

5. 2. 기타 IDE


  • 라자루스는 프리 파스칼 프로그래머가 사용하는 가장 인기 있는 IDE이다. 델파이 IDE와 모양과 느낌이 비슷하며 콘솔 응용 프로그램, 그래픽 사용자 인터페이스 응용 프로그램, 윈도우 서비스, 데몬, 웹 애플리케이션을 만드는 데 사용할 수 있다. 라자루스는 라자루스 컴포넌트 라이브러리 (LCL)라는 크로스 플랫폼 사용자 인터페이스 프레임워크를 제공한다. LCL로 만든 그래픽 응용 프로그램은 재컴파일 또는 크로스 컴파일을 통해 다른 플랫폼으로 이식할 수 있다.

  • 프리 파스칼은 터보 파스칼의 IDE와 유사한 자체 텍스트 모드 IDE를 가지고 있다. 터보 비전의 클론인 프리 비전 프레임워크(프리 파스칼에도 포함)를 사용하여 제작되었다. 터보 파스칼 IDE의 많은 기능 외에도 코드 완성 기능과 여러 도움말 파일 형식(HTML, 마이크로소프트 컴파일 HTML 도움말 (CHM), 정보 제공 기능 (IPF))을 지원한다. IDE는 명령줄 도구를 사용하는 대신, 명령줄 컴파일러 및 디버거와 동일한 소스를 기반으로 자체 내장 컴파일러를 사용하여 기능을 제공한다(libgdb 또는 GDBMI 사용).

  • Dev-파스칼은 프리 파스칼 및 GNU 파스칼을 위한 Windows 전용 무료 IDE이다. 2004년 FPC 버전과 2005년 GPC 버전을 마지막으로 더 이상 개발이 이루어지지 않는다.

6. 라이브러리

프리 파스칼은 프리 파스칼 런타임 라이브러리(RTL), 프리 컴포넌트 라이브러리(FCL) 등 여러 라이브러리를 포함하고 있다.

6. 1. 프리 파스칼 런타임 라이브러리 (RTL)

일반적인 프로그래밍 작업을 위한 기본적인 저수준 런타임 라이브러리이다.[1]

6. 2. 프리 컴포넌트 라이브러리 (FCL)

프리 파스칼 런타임 라이브러리(RTL)는 일반적인 프로그래밍 작업을 위한 기본적인 저수준 런타임 라이브러리인 반면, 프리 컴포넌트 라이브러리(FCL)는 일반적인 프로그래밍 작업을 위한 고수준 소프트웨어 컴포넌트(클래스) 라이브러리이다. 데이터베이스, 네트워킹, XML 처리 등 다양한 기능을 제공한다.

7. 프리 파스칼로 만든 프로그램


  • Pixel Image Editor - 포토샵과 비슷한 그림 편집 도구이다.
  • Peazip - 오픈 소스 압축 프로그램으로, 라자루스/프리 파스칼로 만들었다.
  • Hedgewars - 물리 엔진이 프리 파스칼로 작성되었다.
  • Double Commander - 윈도우 탐색기 대용 프로그램으로, 토탈 커맨더와 거의 같은 기능을 갖고 있다.
  • Beyond Compare - 윈도우, OS X 및 Linux용 데이터 비교 유틸리티이다. Linux 및 OS X 버전은 라자루스/FPC로 컴파일된다.
  • Cartes du Ciel - 리눅스, OS X 및 윈도우용 무료 천문 프로그램이다.
  • Cheat Engine - 메모리 스캐너, 16진수 편집기 및 디버거이다.
  • MyNotex - 리눅스용 노트 작성 및 관리 프로그램이다.
  • TorChat - 익명 채팅 프로그램으로, 이전에는 Python으로 작성되었지만 현재 Free Pascal과 라자루스로 다시 작성되고 있다.

참조

[1] URL bugs.freepascal.org http://bugs.freepasc[...]
[2] URL User Changes 2.4.2 http://wiki.freepasc[...]
[3] 웹사이트 FPC New Features 3.0.0 https://wiki.freepas[...] 2021-02-28
[4] 웹사이트 FPC New Features 3.2.0 - Free Pascal wiki https://wiki.freepas[...] 2020-06-20
[5] 웹사이트 FPC New Features 3.2.2 - Free Pascal wiki https://wiki.freepas[...] 2021-12-30
[6] URL freepascal wiki: FPC JVM http://wiki.freepasc[...]
[7] URL Custom Drawn Interface http://wiki.freepasc[...]
[8] 웹사이트 Ultibo embedded Runtime Library https://ultibo.org/ Ultibo
[9] 웹사이트 Ultibo supported Pi boards https://ultibo.org/f[...] Ultibo.org
[10] 웹사이트 ULIBO Core https://ultibo.org
[11] 웹사이트 D_2D and D_3D plotting programs https://sourceforge.[...] 2018-03-23
[12] 웹사이트 MeKin2D: Subroutines for planar linkage mechanism kinematic simulation https://sourceforge.[...] 2018-03-23
[13] 웹사이트 Nim Pascal source https://github.com/n[...]
[14] 웹사이트 Tranzistow https://www.hrastpro[...]
[15] 문서 BeOSのみ
[16] 문서 32bitのみ
[17] 문서 制限されたクロスコンパイラのみ
[18] 문서 Free Pascal used to be known as '''FPK Pascal''', where ''FPK'' stands for the author [[Florian Paul Klämpfl]]. The name of the project was changed to ''Free Pascal Compiler'' at the end of 1997.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com