프리 파스칼

Free Pascal
프리 파스칼
Free Pascal 3.2.2 help screen.png
Free Pascal 3.2.2 도움말 화면
개발자Florian Klémpfl & 자원봉사자
초기 릴리즈1997년; 25년 전(1997년)
안정된 릴리스
3.2.2 / 2021년 5월 20일, 14개월 전(2021-05-20)
프리뷰 릴리즈
3.3.1
저장소
기입처오브젝트 파스칼
운영 체제크로스 플랫폼, 임베디드
유형컴파일러, 임베디드 운영체제
면허증.컴파일러 및 유틸리티 실행 파일의 GNU General Public License.컴파일러로 작성된 실행 파일의 일부가 되는 런타임, 패키지, 컴포넌트 및 기타 라이브러리의 정적 링크 예외를 포함한 GNU General Public License
웹 사이트www.freepascal.org

FPC(Free Pascal Compiler)는 밀접하게 관련된 프로그래밍 언어 방언Pascal과 Object Pascal의 컴파일러입니다.GNU General Public License에 따라 출시된 자유 소프트웨어이며, 예외 조항은 다른 소프트웨어 라이센스와 조합하여 런타임 라이브러리와 패키지에 대한 정적 링크를 허용합니다.

독자적인 오브젝트 파스칼 사투리와 함께 볼랜드 파스칼 (1990년 버전 6까지 "터보 파스칼"로 명명됨), 볼랜드 (나중에 엠바카데로) 델파이일부 역사적 매킨토시 컴파일러를 포함한 여러 파스칼 패밀리 컴파일러의 사투리를 어느 정도 지원합니다.사투리는 단위(모듈) 단위로 선택되며 프로그램당 여러 사투리를 사용할 수 있습니다.

한 번 쓰기, 어디서든 컴파일할 수 있는 이념을 따르며 많은 CPU 아키텍처운영 체제에서 사용할 수 있습니다(타깃 참조).인라인 어셈블리 언어를 지원하며 AT&T 및 Intel 스타일 등의 여러 사투리를 구문 분석할 수 있는 내부 어셈블러를 포함합니다.

크로스 플랫폼 그래피컬 유저 인터페이스(GUI) 애플리케이션 개발을 촉진하는 다른 프로젝트가 있습니다.가장 중요한 프로젝트는 Lazarus 통합 개발 환경(IDE)입니다.

지원되는 방언

처음에 프리 파스칼은 파스칼 프로그래머인 볼랜드 파스칼의 사실상의 표준 사투리를 채택했지만, 나중에는 델파이의 오브젝트 파스칼을 채택했다.버전 2.0 이후로는 델파이 호환성이 지속적으로 구현 또는 향상되었습니다.

이 프로젝트는 컴파일 모드 개념을 가지고 있으며, 개발자들은 표준 준거 모드를 만들기 위해 미국 국립 표준 협회(ANSI)와 국제 표준화 기구(ISO)의 표준화된 방언에 대한 작업 패치를 포함시킬 것임을 분명히 했습니다.

Classic Mac OS 및 MacOS와의 인터페이스를 용이하게 하기 위해 Apple Pascal 구문 중 일부를 지원하기 위해 약간의 노력을 기울였습니다.애플 사투리는 Turbo Pascal과 Delphi가 생략한 몇 가지 표준 파스칼 기능을 구현합니다.

2.2.x 릴리즈 시리즈는 대략적인 델파이 7레벨 구문을 넘어 사투리의 목적을 크게 변경하지 않고 보다 긴밀한 호환성을 목표로 하고 있습니다.이에 대한 주목할 만한 예외는 버전 2.2.0에서 제네릭에 대한 지원이 추가된 것입니다. 이는 델파이에 의해 어떤 용량으로도 지원되기 몇 년 전입니다.

2011년에 개발 부문에는 델파이 2006 고유의 기능이 몇 개 추가되어 델파이 2009의 새로운 기능에 대한 시작 작업 중 일부가 추가되었습니다(가장 주목되는 것은 델파이 2006의 추가).UnicodeStringtype)이 완료되었습니다.또한 개발 브랜치에는 Objective-C(Cocoa) 인터페이스에 대한 Objective-Pascal 확장 기능이 있습니다.

버전 2.7.1에서 Free Pascal은 기본 ISO Pascal 모드를 구현했습니다.Get그리고.Put절차 및 파일 처리를 위한 파일 변환 변수 개념은 아직 존재하지 않습니다.

버전 3.0.0 이후 ISO Pascal 모드는 상당히 완벽합니다.standardpascal.org의 P5 ISO Pascal 컴파일러를 변경하지 않고 컴파일할 수 있었습니다.

역사

초년

프리 파스칼은 볼랜드가 도스용 볼랜드 파스칼 개발이 윈도 전용 제품(나중에 델파이가 됨)으로 대체되는 버전 7에서 중단될 것이라고 명확히 했을 때 만들어졌다.

학생인 Florian Paul Klémfl은 터보 파스칼 사투리로 작성된 자신만의 컴파일러를 개발하기 시작했고, GO32v1 DOS 익스텐더용 32비트 코드를 생산했습니다.GNU Programming Platform (DJGPP) 프로젝트에 의해 사용 및 개발되었습니다.

원래 컴파일러는 Turbo Pascal에 의해 컴파일된 16비트 DOS 실행 파일이었다.2년 후 컴파일러는 스스로 컴파일을 할 수 있게 되어 32비트 실행 파일이 되었습니다.

팽창

최초의 32비트 컴파일러가 인터넷에 공개되어 최초의 공헌자가 프로젝트에 참가했습니다.나중에 리눅스 포트Borland Kylix Pascal 컴파일러 Linux 버전이 나오기 5년 전에 Michael van Canneyt에 의해 만들어졌습니다.

DOS 포트는 Eberhard Mattes eXtender(EMX)를 사용하여 OS/2에서 사용할 수 있도록 조정되어 OS/2가 지원되는 두 번째 컴파일 타깃이 되었습니다.원작자인 Florian Klémpfl과 더불어 Daniél Mantione는 OS/2 및 EMX에 런타임 라이브러리의 원래 포트를 제공함으로써 이를 실현하는 데 상당한 기여를 했습니다.컴파일러는 점차 개선되어 DOS 버전은 GO32v2 익스텐더로 이행되었습니다.이 릴리스는 이전 버전보다 훨씬 더 널리 사용된 0.99.5 릴리스로, 볼랜드 파스칼 준수만을 목표로 한 마지막 릴리스가 되었습니다. 이후 릴리스에는 델파이 호환성 모드가 추가되었습니다.이 릴리스는 Motorola 68000 패밀리(m68k) 프로세서를 사용하는 시스템에도 이식되었습니다.

릴리스 0.99.8에서 Win32 타겟이 추가되었으며, 시작은 일부 델파이 기능을 통합했습니다.베타 이외의 릴리스에 대한 안정화가 시작되었으며 버전 1.0은 2000년 7월에 출시되었습니다.1.0.x 시리즈는 비즈니스 및 교육 분야에서 널리 사용되었습니다.1.0.x 릴리스에서는 68k CPU에 대한 포트가 리노베이션되어 컴파일러는 여러 68k UnixAmiga에 대해 안정된 코드를 생성했습니다.OS 운영 체제

버전 2

1.0.x가 되는 것을 안정화하는 동안, 그리고 Motorola 68k 시스템으로 이식하는 동안, 코드 제너레이터의 디자인은 많은 면에서 너무 제한적이었다는 것이 분명했다.주된 문제는 프로세서를 추가하는 것은 코드 제너레이터를 다시 쓰는 것을 의미하며 레지스터 할당은 빌딩 블록 간에 항상 3개의 자유 레지스터를 유지하는 원칙에 기초하고 있다는 것입니다.그것은 유연성이 없고 유지보수가 어렵습니다.

이러한 이유로 1.1.x 시리즈는 1999년 12월에 1.0.x 메인브런치에서 분기되었습니다.처음에 변경은 대부분 컴파일러의 모든 부분에 대한 정리 및 재설정이었습니다.코드 생성기와 레지스터 할당기도 다시 작성되었습니다.부족한 Dellphi 호환성이 추가되었습니다.

1.1.x에서의 작업은 느리지만 꾸준히 계속되었습니다.2003년 후반, 가동 인 전력PC 포트는 2004년 여름 ARM 포트, 2004년 가을 SPARC 포트, 2004년 초 x86-64-AMD64 포트를 통해 64비트 플랫폼에서 컴파일러를 사용할 수 있게 되었습니다.

2003년 11월, 1.1.x 브랜치의 번째 베타 릴리스가 패키지화되어 번호가 1.9.0이었습니다.그 후 버전 1.9.2와 1.9.4가 출시되었습니다.후자는 OS X 지원을 도입했습니다.이 작업은 버전 1.9.6(2005년 1월), 1.9.8(2005년 2월 말), 2.0.0(2005년 5월), 2.0.2(2005년 12월) 및 2.0.4(2006년 8월)로 계속되었습니다.

버전 2.2.x

2006년에는 유닛 시스템의 개서 등 2.2를 목표로 한 주요 리노베이션의 일부가 아직 시작되지 않고, 그 대신에 이미 실장되어 있던 기능의 안정화를 개시하기로 결정했다.

로드맵이 변경된 이유 중 일부는 Lazarus 통합 개발 환경 프로젝트, 특히 내부 링커, x86에서의 Win64, Windows CE 및 OS X 지원, DWARF 등의 관련 기능이 필요했기 때문입니다.버전 2.1.2 및 2.1.4에 이어 버전 2.2.0이 2007년9월에 출시되었으며 버전 2.2.2가 2008년8월에, 버전 2.2.4가 2009년3월에 출시되었습니다.

2.2.x 시리즈에서는 ActiveX 컴포넌트 오브젝트 모델(COM) 인터페이스오브젝트 링크임베딩(OLE) 지원이 대폭 개선되었지만 버그는 여전히 발견되었습니다.를 사용하여 인터페이스하는 위임implements키워드는 부분적으로 구현되었지만 2011년 [1]3월 현재 완전하지 않습니다.ActiveX에 대한 라이브러리 지원도 향상되었습니다.

또 다른 주요 기능은 Win32, Win64 및 Windows CE의 내부 링커로 링크 시간과 메모리 사용률이 크게 향상되었으며 Lazarus의 컴파일 링크 실행 사이클이 훨씬 빨라졌습니다.스마트 링크, 즉 데드 코드 제거의 효율성도 향상되었습니다.

마이너 신기능에는 개선된 DWARF(2/3) 디버깅 포맷 지원, 테일 재귀, 불필요한 스택프레임 생략, 레지스터 기반 Common Sub Expression Elimation(CSE; 공통 서브 표현 제거) 최적화 등의 최적화 기능이 있습니다.일반 프로그래밍(일반) 지원의 첫 번째 구현도 가능했지만 실험적으로만 가능했습니다.

버전 2.4.x

2.4.x 릴리즈 시리즈의 목표는 이전 릴리즈보다 명확하지 않았습니다.유닛 시스템의 개서가 다시 연기되어 2.4가 된 브랜치는 위험 커밋을 2.2에서 안정시키기 위해 작성되었습니다.이러한 위험 부담이 큰 커밋은 대부분 새로운 플랫폼인 Mac Power에 대한 개선과 관련이 있습니다.PC 64, Mac x86-64, iPhone 및 일반적인 ARM 및 x86-64 아키텍처에 대한 많은 수정 사항 및 DWARF.

기타 컴파일러 기능에는 전체 프로그램 최적화(WPO) 및 반가상화 및 ARM 임베디드 애플리케이션 바이너리 인터페이스(EABI) 지원이 포함되었습니다.

나중에 2.2 사이클 동안 더 델파이 같은 리소스 지원이 추가되었습니다(Pascal 상수 대신 바이너리의 특수 섹션에 기반).Lazarus가 절실히 필요로 하는 이 기능은 지점의 주요 포인트가 되었습니다.

그 밖에도 메모리 매니저가 추가되어 스레드 환경에서 매니저의 퍼포먼스가 향상되어 다음과 같은 델파이 호환성이 약간 향상되었습니다.OleVariant 인터페이스 레귤레이션의 개선.

2010년 1월 1일 Free Pascal 2.4.0이 출시되었고, 이어 2010년 11월 13일 버그 수정 릴리스 2.4.2가 출시되었으며, 이 릴리스는 다음을 지원합니다.for..in루프,sealed그리고.abstract클래스 및 기타 변경 사항.[2]

버전 2.6.x

2012년 1월 Free Pascal 2.6이 출시되었습니다.이 2.6 릴리즈 시리즈의 첫 번째 버전은 OS X 및 iOS 타깃에서 Objective Pascal을 지원하며 많은 작은 개선사항과 버그 수정을 구현했습니다.2013년 2월에는 FPC 2.6.2가 출시되었습니다.1.0.10 이후 처음으로 신규 포트를 기반으로 NetBSD 및 OpenBSD 릴리스를 포함했습니다.2014년 3월, 2.6 시리즈의 마지막 포인트 릴리스인 2.6.4가 출시되었으며, 대부분 데이터베이스(fcl-db) 업데이트가 포함되어 있습니다.

버전 3.0.x

버전 3.0.0은 2015년 11월 25일에 출시되었으며 2012년 1월 1일 이후 첫 번째 메이저 릴리스입니다.그것은 많은 새로운 언어 특징을 [3]도입했다.

버전 3.0.2는 2017년 2월 15일에 출시되었으며 버그 수정 및 마이너 컴파일러 업데이트가 포함되어 있습니다.
버전 3.0.4는 2017년 11월 28일에 출시되었습니다.
이전 버전보다 많은 언어 향상을 포함하고 있습니다.를 들어 실행 가능링크 가능 포맷(ELF), iOS 및 Linux용 Arm AARCH64, 부활한i8086 플랫폼, 확장 라이브러리 등이 있습니다.

버전 3.2.x

다음 메이저 릴리스 버전 3.2.0은 2020년 6월 19일에 발행되었습니다.새로운 표준 유닛의 등장과 추가 [4]플랫폼의 지원 외에 범용 루틴, 표준 네임스페이스, 관리 레코드, 동적 어레이의 확장 기능 등 많은 새로운 언어 기능이 도입되었습니다.

버전 3.2.2는 2021년 5월 20일에 출시되었으며 AArch64에서 macOS와 스레드 이름을 지원합니다.또한 버그 수정과 마이너 컴파일러 업데이트가 [5]포함되어 있습니다.

대상

프로세서 아키텍처 운영체제, 디바이스 버전 3.2.2 또는 3.3.1(트렁크) 버전 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
i386 DOS(GO32v2 익스텐더) 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
FreeBSD 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
오픈BSD 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
넷BSD 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
리눅스 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
MacOS 네. 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요.
OS/2 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
창문들 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
Windows CE 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
BeOS 네. 네. 네. 네. 네. 네. 네. 네. 네. 네.
하이쿠 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
넷웨어 네. 네. 네. 네. 네. 네. 네. 네. 네. 아니요.
솔라리스 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 네.
아이폰 심 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
중성미자 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
안드로이드 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
AROS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
x86-64 FreeBSD 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
오픈BSD 네. 네. 네. 불명 불명 불명 불명 불명 불명 불명
넷BSD 네. 네. 네. 불명 불명 불명 불명 불명 불명 불명
리눅스 네. 네. 네. 네. 네. 네. 네. 네. 불명 아니요.
MacOS 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
창문들 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
아이폰 심 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
AROS 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
DragonFly BSD 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
솔라리스 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
하이쿠 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
안드로이드 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
iOS 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
게임보이 어드밴스 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
닌텐도 DS 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
리눅스 네. 네. 네. 네. 네. 네. 네. 네. 불명 아니요.
Windows CE 네. 네. 네. 네. 네. 네. 네. 네. 불명 아니요.
안드로이드 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
내장 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
내장 Rasp-PI 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
AROS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
AArch64 리눅스 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
iOS 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
안드로이드 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
MacOS 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
AVR 내장 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
Power PC 리눅스 네. 네. 네. 네. 네. 네. 네. 네. 네. 아니요.
MacOS 네. 네. 네. 네. 네. 네. 네. 네. 네. 아니요.
클래식 Mac OS 네. 네. 네. 네. 네. 아니요. 아니요. 네. 네. 아니요.
아미가OS 4 네. 네. 네. 네. 네. 불명 불명 불명 네. 아니요.
MorphOS 네. 네. 네. 네. 네. 불명 불명 불명 네. 아니요.
AIX 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
Wii 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요.
PowerPC 64비트 리눅스 네. 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요.
MacOS 네. 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요.
AIX 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
SPARC 솔라리스 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
넷BSD 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
내장 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
리눅스 네. 네. 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요.
SPARC64 리눅스 네. 네. 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
RISC-V 내장 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
RISC-V64 내장 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
Java 가상 머신 자바 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
안드로이드 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
MIPS(BE 및 LE) 리눅스 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
내장 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
8086(16비트) DOS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
Windows 16 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
내장 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
m68k 리눅스 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
넷BSD 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
아미가OS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네.
아타리 TOS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 네, 그렇습니다limited cross-compiler only.
팜 OS 네. 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 불명
Z80 내장 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
ZX 스펙트럼 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
MSX-DOS 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.
웹 어셈블리 웹 브라우저 네. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요. 아니요.

Free Pascal은 또한 버전 3.0.0에서 Java Virtual Machine용 바이트 코드 생성을 지원하며 Oracle의 Java와 Google의 Android [6]JVM을 모두 대상으로 하지만 Object Pascal 구문은 완전히 지원되지 않습니다.또한 Free Pascal 3.0.0은 Raspbian에서 실행되는 ARMV6-EABIHF를 포함한 라즈베리 파이와 같은 ARMHF 플랫폼을 지원합니다.64비트 ARM에서 작업한 결과 3.0.0에서도 iOS를 지원하게 되었습니다.네이티브 ARM Android 타깃이 추가되어 이전에 해킹된 ARM Linux 타깃이 종료되어 안드로이드용 네이티브 ARM 라이브러리가 생성됩니다.이를 통해 Lazarus 애플리케이션을 Android(커스텀 드로잉[7] 인터페이스)로 쉽게 이식할 수 있습니다.FPC 2.6.2 이후 OpenBSDNetBSD는 IA32 및 X86_64 아키텍처에서 지원됩니다.OS를 사용하지 않고 사용할 수 있도록 새로운 타겟이 추가되었습니다(ARM Cortex M 및 MIPS가 주를 이룹니다).인스턴트 사용FPC는 때맞춰 번역된 파스칼 프로그램을 Unix 스크립트 또는 CGI 백엔드로 실행할 수 있습니다.

Ultibo core는 Lasberry [8]Pi를 위한 임베디드 또는 베어 메탈 개발 환경입니다.Ultibo는 Free Pascal에 기반을 두고 있으며 Lazarus의 변형된 버전으로 개발되었습니다.IDE는 PC 기반이지만 Linux 및 Mac에도 이식되어 있습니다.Ultibo는 OS가 없는 런타임으로 대부분의 기능을 지원하며 프로그래머가 RTL 유닛을 통해 하드웨어를 완전히 제어할 수 있습니다.런타임은 멀티 스레드, 프리엠프티브 멀티태스킹을 구현합니다.프로그래머는 특정 CPU에 스레드를 배치하거나 실행 시 자동으로 부하를 분산하거나 둘의 부하를 혼합할 수 있습니다.대부분의 라즈베리 파이 모델은 A, B, A+ 및 B+뿐만 아니라 라즈베리 파이 2B, 3B, 4B/400/CM4 및 제로도 지원합니다.[9]

통합 개발 환경

대부분의 최신 컴파일러와 마찬가지로 Free Pascal은 통합 개발 환경(IDE)과 함께 사용할 수 있습니다.독립된 IDE 이외에도 다양한 기존 IDE에 대한 플러그인이 있습니다.

Linux의 무료 Pascal IDE는 독일어로 "Hello, World!" 프로그램보여줍니다.
  • 프리 파스칼은 Turbo Pascal의 IDE와 유사한 자체 텍스트 모드 IDE를 가지고 있습니다.Turbo Vision 클론인 Free Vision 프레임워크(Free Pascal에도 포함되어 있음)를 사용하여 제작되었습니다.Turbo Pascal IDE의 많은 기능 외에 코드 완성 및 여러 도움말 파일 형식(HTML, Microsoft 컴파일 HTML 도움말(CHM), 정보 표시 기능(IPF))을 지원합니다.명령줄 도구를 사용하는 대신 IDE는 명령줄 컴파일러 및 디버거와 동일한 소스에 기반한 자체 내장 컴파일러를 사용합니다(libgdb 또는 GDB 사용).MI) 기능을 제공합니다.
  • Lazarus는 Free Pascal 프로그래머가 가장 많이 사용하는 IDE입니다.Delphi IDE와 외관과 느낌이 비슷하며 콘솔 및 그래픽 애플리케이션, Windows 서비스, 데몬 및 웹 애플리케이션을 만드는 데 사용할 수 있습니다.Lazarus는 LCL(Lazarus Component Library)이라는 크로스 플랫폼 사용자 인터페이스 프레임워크를 제공합니다.LCL로 작성된 그래픽 애플리케이션은 재컴파일 또는 크로스 컴파일을 통해 다른 플랫폼으로 이식할 수 있습니다.
  • Dev-Pascal은 Free Pascal과 GNU Pascal을 위한 무료 Windows 전용 IDE이며, 2004년 FPC 버전과 2005년 GPC 버전에 이어 더 이상의 개발은 없습니다.

번들 라이브러리

컴파일러와 IDE 이외에 Free Pascal은 다음과 같은 라이브러리를 제공합니다.

  • Free Pascal Runtime Library(RTL): 일반적인 프로그래밍 작업을 위한 기본 로우 레벨 런타임 라이브러리
  • Free Component Library(FCL): 일반적인 프로그래밍 태스크를 위한 고급 소프트웨어 컴포넌트 라이브러리

Free Pascal로 만든 소프트웨어의 예

  • ULTIBO[10] Core]는 베어메탈(운영체제 없음) Raspbian PI 보드를 대상으로 한 개발 환경입니다.FreePascal/Lazarus를 사용하고, 유니커널 런타임으로 애플리케이션을 링크합니다.
  • Beyond Compare는 Windows, OS X 및 Linux용 데이터 비교 유틸리티입니다.Linux 및 OS X 버전은 Lazarus/FPC로 컴파일됩니다.
  • Cartes du Ciel은 Linux, OS X 및 Windows용 무료 플라네타리움 프로그램입니다.그것은 망원경으로 볼 수 있는 대부분의 별자리, 행성, 물체들을 지도화하고 레이블을 붙입니다.완전 Lazarus/FPC로 작성되어 GPL로 발매되었습니다.
  • Cheet Engine은 오픈 소스 메모리 스캐너, 16진 에디터 및 디버거입니다.그것은 컴퓨터 게임에서 부정행위를 할 때 사용될 수 있다.버전 6.0 이후는 Lazarus/FPC로 컴파일 되었습니다.
  • D_2D D_3D 데이터 플로팅 프로그램.[11]
  • Double Commander는 Microsoft Windows 전용 Total Commander에서 영감을 얻은 오픈 소스 멀티 플랫폼2 패널 정통 파일 매니저입니다
  • Free Pascal은 오브젝트 파스칼 및 어셈블리 언어로 작성되며 자체 컴파일됩니다.
  • HNSKY, Hallo Northern Sky는 Windows 및 Linux용 무료 플라네타리움 프로그램입니다.버전 3.4.0 이후, Lazarus/FPC로 작성 및 컴파일.
  • Lazarus:그래픽 애플리케이션의 신속한 개발을 위한 무료 Pascal 제휴 델파이 소프트웨어 패키지.
  • MeKin2D: 평면 링크, 캠 및 기어 메커니즘 운동학을 [12]위한 패키지.
  • Morfik: Morfik WebOS AppBuilder는 Free Pascal을 사용하여 CGI 바이너리를 만듭니다.
  • MyNotex는 Linux용 무료 소프트웨어 메모 및 메모 관리자입니다.
  • Nim 컴파일러의 초기 버전은 Nim에서 셀프호스팅이 되기 [13]전에 Free Pascal에서 개발되었습니다.
  • Peazip은 Lazarus/FPC로 만든 오픈 소스 아카이브 서버입니다.
  • 이전에 Python으로 작성되었던 TorChat은 현재 Free Pascal과 Lazarus로 다시 작성되고 있습니다.
  • Tranzistow는 FreePascal/Lazarus와 함께 개발된 Windows 및 Linux용 32/64비트 소프트웨어 신시사이저입니다.

「 」를 참조해 주세요.

  • fpGUI Free Pascal GUI 툴킷– 오브젝트 파스칼에 구현된 크로스 플랫폼 및 커스텀 드로잉 툴킷

레퍼런스

  1. ^ bugs.freepascal.org
  2. ^ 사용자 변경 2.4.2
  3. ^ "FPC New Features 3.0.0". Free Pascal wiki. Retrieved February 28, 2021.
  4. ^ "FPC New Features 3.2.0 - Free Pascal wiki". wiki.freepascal.org. Retrieved June 20, 2020.
  5. ^ "FPC New Features 3.2.2 - Free Pascal wiki". wiki.freepascal.org. Retrieved December 30, 2021.
  6. ^ freepascal wiki: FPC JVM
  7. ^ 커스텀 드로잉 인터페이스
  8. ^ "Ultibo embedded Runtime Library". Ultibo.org. Ultibo.
  9. ^ "Ultibo supported Pi boards". Ultibo.org.
  10. ^ "ULIBO Core".
  11. ^ "D_2D and D_3D plotting programs". sourceforge.net. Retrieved March 23, 2018.
  12. ^ "MeKin2D: Subroutines for planar linkage mechanism kinematic simulation". sourceforge.net. Retrieved March 23, 2018.
  13. ^ "Nim Pascal source".
  14. ^ "Tranzistow".

외부 링크

공식 웹사이트

개요

게임 개발 전문 사이트