Web Pascal miễn phí

Free Pascal Compiler (FPC) là một trình biên dịch cho ngôn ngữ lập trình liên quan chặt chẽ Pascal và Object Pascal. Đây là phần mềm miễn phí được phát hành theo Giấy phép Công cộng GNU, với các điều khoản ngoại lệ cho phép liên kết tĩnh với các gói và thư viện thời gian chạy của nó cho bất kỳ mục đích nào kết hợp với bất kỳ giấy phép phần mềm nào khác

Nó hỗ trợ phương ngữ Object Pascal của riêng nó, cũng như các phương ngữ của một số trình biên dịch họ Pascal khác ở một mức độ nhất định, bao gồm cả phương ngữ của Borland Pascal (được đặt tên là "Turbo Pascal" cho đến phiên bản 6 năm 1990), Borland (sau này là Embarcadero) Delphi và . Phương ngữ được chọn trên cơ sở từng đơn vị (mô-đun) và có thể sử dụng nhiều phương ngữ cho mỗi chương trình

Nó tuân theo triết lý viết một lần, biên dịch ở mọi nơi và có sẵn cho nhiều kiến ​​trúc CPU và hệ điều hành (xem Mục tiêu). Nó hỗ trợ ngôn ngữ lắp ráp nội tuyến và bao gồm một trình biên dịch mã nội bộ có khả năng phân tích một số phương ngữ như kiểu AT&T và Intel

Có các dự án riêng biệt để tạo điều kiện phát triển các ứng dụng giao diện người dùng đồ họa (GUI) đa nền tảng, nổi bật nhất là môi trường phát triển tích hợp Lazarus (IDE)

Các phương ngữ được hỗ trợ[sửa]

Ban đầu, Free Pascal đã sử dụng phương ngữ chuẩn thực tế của các lập trình viên Pascal, Borland Pascal, nhưng sau đó đã sử dụng Object Pascal của Delphi. Từ phiên bản 2. 0, khả năng tương thích Delphi đã được triển khai hoặc cải thiện liên tục

Dự án có khái niệm chế độ biên dịch và các nhà phát triển đã nói rõ rằng họ sẽ kết hợp các bản vá hoạt động cho các phương ngữ được tiêu chuẩn hóa của Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) và Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) để tạo ra một chế độ tuân thủ tiêu chuẩn

Một nỗ lực nhỏ đã được thực hiện để hỗ trợ một số cú pháp Apple Pascal để dễ dàng giao tiếp với Mac OS và macOS cổ điển. Phương ngữ Apple thực hiện một số tính năng Pascal tiêu chuẩn mà Turbo Pascal và Delphi bỏ qua

2. 2. x đã không thay đổi đáng kể các mục tiêu phương ngữ ngoài cú pháp mức Delphi 7, thay vào đó nhằm mục đích tương thích chặt chẽ hơn. Một ngoại lệ đáng chú ý đối với điều này là việc bổ sung hỗ trợ cho thuốc generic cho Free Pascal trong phiên bản 2. 2. 0, vài năm trước khi chúng được Delphi hỗ trợ ở bất kỳ khả năng nào

Trong năm 2011, một số tính năng dành riêng cho Delphi 2006 đã được thêm vào nhánh phát triển và một số công việc khởi đầu cho các tính năng mới trong Delphi 2009 (đáng chú ý nhất là việc bổ sung loại UnicodeString) đã hoàn thành. Nhánh phát triển cũng có phần mở rộng Mục tiêu-Pascal cho giao diện Mục tiêu-C (Cocoa)

Kể từ phiên bản 2. 7. 1, Free Pascal đã triển khai chế độ ISO Pascal cơ bản, mặc dù nhiều thứ như thủ tục GetPut và khái niệm biến bộ đệm tệp để xử lý tệp vẫn chưa có

Kể từ phiên bản 3. 0. 0, chế độ ISO Pascal khá hoàn thiện. Nó đã có thể biên dịch standardpascal. trình biên dịch P5 ISO Pascal của org không có thay đổi

Lịch sử[sửa]

Những năm đầu[sửa]

Free Pascal được tạo ra khi Borland làm rõ rằng việc phát triển Borland Pascal cho DOS sẽ dừng lại ở phiên bản 7, được thay thế bằng một sản phẩm chỉ dành cho Windows, sau này trở thành Delphi

Sinh viên Florian Paul Klämpfl bắt đầu phát triển trình biên dịch của riêng mình được viết bằng phương ngữ Turbo Pascal và tạo mã 32-bit cho bộ mở rộng GO32v1 DOS, được sử dụng và phát triển bởi dự án Nền tảng lập trình GNU (DJGPP) của DJ vào thời điểm đó

Ban đầu, trình biên dịch là một chương trình thực thi DOS 16-bit do Turbo Pascal biên dịch. Sau hai năm, trình biên dịch đã có thể tự biên dịch và trở thành tệp thực thi 32 bit

Mở rộng[sửa]

Trình biên dịch 32-bit ban đầu đã được xuất bản trên Internet và những người đóng góp đầu tiên đã tham gia dự án. Sau đó, một cổng Linux đã được tạo ra bởi Michael van Canneyt, 5 năm trước khi trình biên dịch Borland Kylix Pascal cho Linux có sẵn

Cổng DOS đã được điều chỉnh để sử dụng trong OS/2 bằng cách sử dụng Eberhard Mattes eXtender (EMX) khiến OS/2 trở thành mục tiêu biên dịch được hỗ trợ thứ hai. Cũng như tác giả gốc Florian Klämpfl, Daniël Mantione cũng đóng góp đáng kể để thực hiện điều này, cung cấp cổng ban đầu của thư viện thời gian chạy cho OS/2 và EMX. Trình biên dịch được cải thiện dần dần và phiên bản DOS đã chuyển sang bộ mở rộng GO32v2. Điều này lên đến đỉnh điểm trong bản phát hành 0. 99. 5, được sử dụng rộng rãi hơn nhiều so với các phiên bản trước và là bản phát hành cuối cùng chỉ nhằm mục đích tuân thủ Borland Pascal; . Bản phát hành này cũng được chuyển sang các hệ thống sử dụng bộ xử lý Motorola 68000 family (m68k)

Với bản phát hành 0. 99. 8, mục tiêu Win32 đã được thêm vào và bắt đầu được thực hiện với việc kết hợp một số tính năng Delphi. Quá trình ổn định cho bản phát hành không phải beta đã bắt đầu và phiên bản 1. 0 được phát hành vào tháng 7 năm 2000. 1. 0. x series đã được sử dụng rộng rãi, trong kinh doanh và giáo dục. Đối với 1. 0. x, cổng tới CPU 68k đã được làm lại và trình biên dịch đã tạo ra mã ổn định cho một số hệ điều hành 68k giống như Unix và AmigaOS

Phiên bản 2[sửa]

Trong quá trình ổn định những gì sẽ trở thành 1. 0. x và cả khi chuyển sang hệ thống Motorola 68k, rõ ràng là thiết kế của trình tạo mã quá hạn chế về nhiều mặt. Các vấn đề chính là việc thêm bộ xử lý có nghĩa là viết lại bộ tạo mã và việc phân bổ thanh ghi dựa trên nguyên tắc luôn giữ ba thanh ghi trống giữa các khối xây dựng, điều này không linh hoạt và khó bảo trì

Vì những lý do này, 1. 1. sê-ri x phân nhánh từ 1. 0. x chi nhánh chính vào tháng 12 năm 1999. Lúc đầu, các thay đổi chủ yếu là dọn dẹp và viết lại-thiết kế lại tất cả các phần của trình biên dịch. Trình tạo mã và cấp phát thanh ghi cũng được viết lại. Mọi khả năng tương thích Delphi còn thiếu đã được thêm vào

công việc trên 1. 1. x tiếp tục chậm nhưng đều đặn. Vào cuối năm 2003, một cổng PowerPC đang hoạt động đã có sẵn, tiếp theo là cổng ARM vào mùa hè năm 2004, cổng SPARC vào mùa thu năm 2004 và cổng x86-64-AMD64 vào đầu năm 2004, giúp trình biên dịch có sẵn cho nền tảng 64 bit

Vào tháng 11 năm 2003, bản phát hành beta đầu tiên của 1. 1. nhánh x được đóng gói và đánh số 1. 9. 0. Chúng nhanh chóng được theo sau bởi các phiên bản 1. 9. 2 và 1. 9. 4; . Công việc tiếp tục với phiên bản 1. 9. 6 (tháng 1 năm 2005), 1. 9. 8 (cuối tháng 2 năm 2005), 2. 0. 0 (tháng 5 năm 2005), 2. 0. 2 (tháng 12 năm 2005) và 2. 0. 4 (tháng 8 năm 2006)

Phiên bản 2. 2. x[sửa]

Năm 2006, một số công việc làm lại lớn được lên kế hoạch cho 2. 2, chẳng hạn như viết lại hệ thống đơn vị, vẫn chưa bắt đầu và thay vào đó, nó đã được quyết định bắt đầu ổn định các tính năng đã được triển khai

Một số động cơ cho sự thay đổi lộ trình này là nhu cầu của dự án môi trường phát triển tích hợp Lazarus, đặc biệt là trình liên kết nội bộ, hỗ trợ Win64, Windows CE và OS X trên x86 và các tính năng liên quan như DWARF. Sau bản beta 2. 1. 2 và 2. 1. 4, phiên bản 2. 2. 0 được phát hành vào tháng 9 năm 2007, tiếp theo là phiên bản 2. 2. 2 vào tháng 8 năm 2008 và phiên bản 2. 2. 4 tháng 3 năm 2009

2. 2. x đã cải thiện đáng kể khả năng hỗ trợ cho giao diện ActiveX và Mô hình đối tượng thành phần (COM) cũng như Liên kết và nhúng đối tượng (OLE), mặc dù các lỗi vẫn được tìm thấy. Việc ủy ​​quyền cho giao diện sử dụng từ khóa implements đã được triển khai một phần nhưng chưa hoàn tất kể từ tháng 3 năm 2011. [1] Hỗ trợ thư viện cho ActiveX cũng được cải thiện

Một tính năng chính khác là trình liên kết nội bộ dành cho Win32, Win64 và Windows CE, giúp cải thiện đáng kể thời gian liên kết và sử dụng bộ nhớ, đồng thời giúp chu trình biên dịch-liên kết-chạy trong Lazarus nhanh hơn nhiều. Hiệu quả của liên kết thông minh hoặc loại bỏ mã chết cũng được cải thiện

Các tính năng mới nhỏ bao gồm hỗ trợ định dạng gỡ lỗi DWARF (2/3) được cải thiện và các tối ưu hóa như đệ quy đuôi, bỏ qua các khung ngăn xếp không cần thiết và tối ưu hóa loại bỏ biểu thức con chung (CSE) dựa trên đăng ký. Việc triển khai hỗ trợ lập trình chung (generic) đầu tiên cũng có sẵn, nhưng chỉ ở dạng thử nghiệm

Phiên bản 2. 4. x[sửa]

2. 4. loạt bản phát hành x có mục tiêu ít rõ ràng hơn so với các bản phát hành trước đó. Việc viết lại hệ thống đơn vị lại bị hoãn lại và nhánh trở thành 2. 4 được tạo để giữ các cam kết rủi ro từ 2. 2 để ổn định nó. Hầu hết các cam kết rủi ro này liên quan nhiều hơn đến các cải tiến cho nền tảng mới, Mac PowerPC 64, Mac x86-64, iPhone và nhiều bản sửa lỗi cho kiến ​​trúc ARM và x86-64 nói chung, cũng như DWARF

Các cải tiến khác của trình biên dịch bao gồm tối ưu hóa toàn bộ chương trình (WPO) và ảo hóa và hỗ trợ giao diện nhị phân ứng dụng nhúng ARM (EABI)

Sau đó, trong suốt 2. 2, hỗ trợ tài nguyên giống Delphi hơn (dựa trên các phần đặc biệt trong tệp nhị phân thay vì hằng số Pascal) đã được thêm vào. Tính năng này, rất cần thiết cho Lazarus, đã trở thành điểm nổi bật chính của chi nhánh

Các bổ sung nhỏ khác là trình quản lý bộ nhớ giúp cải thiện hiệu suất của trình quản lý heap trong môi trường luồng, các cải tiến nhỏ về khả năng tương thích Delphi như OleVariant và các cải tiến trong ủy quyền giao diện

Ngày 1 tháng 1 năm 2010, Free Pascal 2. 4. 0 được phát hành, tiếp theo vào ngày 13 tháng 11 năm 2010, bằng bản phát hành sửa lỗi 2. 4. 2, với sự hỗ trợ cho các vòng lặp for..in, lớp sealedabstract và các thay đổi khác. [2]

Phiên bản 2. 6. x[sửa]

Vào tháng 1 năm 2012, Free Pascal 2. 6 đã được phát hành. Phiên bản đầu tiên này từ 2. 6 cũng hỗ trợ Objective Pascal trên các mục tiêu OS X và iOS, đồng thời triển khai nhiều cải tiến nhỏ và sửa lỗi. Vào tháng 2 năm 2013, FPC 2. 6. 2 đã được phát hành. Nó chứa các bản phát hành NetBSD và OpenBSD lần đầu tiên kể từ 1. 0. 10, dựa trên các cổng mới. Vào tháng 3 năm 2014, lần phát hành điểm cuối cùng trong 2. 6 loạt, 2. 6. 4, đã được khởi chạy, có hầu hết các bản cập nhật cơ sở dữ liệu (fcl-db)

Phiên bản 3. 0. x[sửa]

Phiên bản 3. 0. 0 được phát hành vào ngày 25 tháng 11 năm 2015 và là bản phát hành lớn đầu tiên kể từ ngày 1 tháng 1 năm 2012. Nó giới thiệu nhiều tính năng ngôn ngữ mới. [3]

Phiên bản 3. 0. 2 được phát hành vào ngày 15 tháng 2 năm 2017 và bao gồm sửa lỗi và cập nhật trình biên dịch nhỏ.
Phiên bản 3. 0. 4 được phát hành vào ngày 28 tháng 11 năm 2017.
Nó bao gồm nhiều cải tiến về ngôn ngữ so với các phiên bản trước, bao gồm trình liên kết nội bộ cho Định dạng có thể thực thi và có thể liên kết (ELF), Arm AARCH64 cho iOS và Linux, nền tảng i8086 đã được khôi phục, các thư viện mở rộng, v.v.

Phiên bản 3. 2. x[sửa]

Bản phát hành chính tiếp theo, phiên bản 3. 2. 0, được xuất bản vào ngày 19 tháng 6 năm 2020. Nó đã giới thiệu nhiều tính năng ngôn ngữ mới, bao gồm các thói quen chung, không gian tên tiêu chuẩn, bản ghi được quản lý và chức năng mở rộng cho mảng động, bên cạnh sự ra đời của các đơn vị tiêu chuẩn mới và sự hỗ trợ của các nền tảng bổ sung. [4]

Phiên bản 3. 2. 2 được phát hành vào ngày 20 tháng 5 năm 2021 và hỗ trợ macOS trên AArch64 cũng như cách đặt tên luồng. Ngoài ra, nó bao gồm sửa lỗi và cập nhật trình biên dịch nhỏ. [5]

Mục tiêu[sửa]

Kiến trúc bộ xử lýHệ điều hành, thiết bịPhiên bản 3. 2. 2 hoặc 3. 3. 1 (Thân cây)Phiên bản 3. 0. 0 - 3. 2. 0Phiên bản 2. 6. 2Phiên bản 2. 6. 0Phiên bản 2. 4. 4Phiên bản 2. 4. 2Phiên bản 2. 4. 0Phiên bản 2. 2. 4Phiên bản 2. 0. xPhiên bản 1. 0. xi386DOS (GO32v2 extender)YesYesYesYesYesYesYesYesYesYesFreeBSDYesYesYesYesYesYesYesYesYesYesOpenBSDYesYesYesNoNoNoNoNoNoYesNetBSDYesYesYesNoNoNoNoNoNoYesLinuxYesYesYesYesYesYesYesYesYesYesmacOSYesYesYesYesYesYesYesYesNoNoOS/2YesYesYesYesYesYesYesYesYesYesWindowsYesYesYesYesYesYesYesYesYesYesWindows CEYesYesYesYesYesYesYesNoNoNoBeOSYesYesYesYesYesYesYesYesYesYesHaikuYesYesYesYesYesYesYesNoNoNoNetWareYesYesYesYesYesYesYesYesYesNoSolarisYesYesYesYesYesYesNoNoNoYesiPhone SimYesYesYesYesNoNoNoNoNoNoQNX NeutrinoYesNoNoNoNoNoNoNoNoYesAndroidYesYesYesNoNoNoNoNoNoNoAROSYesYesNoNoNoNoNoNoNoNox86-64FreeBSDYesYesYesYesYesYesNoNoNoNoOpenBSDYesYesYesUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownNetBSDYesYesYesUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownUn­knownLinuxYesYesYesYesYesYesYesYesUn­knownNomacOSYesYesYesYesYesYesYesNoNoNoWindowsYesYesYesYesYesYesYesNoNoNoiPhone SimYesYesYesYesNoNoNoNoNoNoAROSYesYesYesYesYesYesNoNoNoNoDragonFly BSDYesYesYesYesYesYesNoNoNoNoSolarisYesYesYesYesY

Free Pascal cũng hỗ trợ tạo mã byte cho Máy ảo Java kể từ phiên bản 3. 0. 0 và nhắm mục tiêu cả Java của Oracle và Android JVM của Google,[6] mặc dù cú pháp Object Pascal không được hỗ trợ đầy đủ. Pascal miễn phí 3. 0. 0 cũng hỗ trợ các nền tảng ARMHF như Raspberry Pi, bao gồm cả ARMV6-EABIHF chạy trên Raspbian. Hoạt động trên ARM 64-bit đã dẫn đến hỗ trợ cho iOS trong 3. 0. 0 cũng vậy. Mục tiêu ARM Android gốc đã được thêm vào, kết thúc mục tiêu ARM Linux đã bị tấn công trước đây để tạo thư viện ARM gốc cho Android. Điều này giúp chuyển các ứng dụng Lazarus sang Android (sử dụng Giao diện vẽ tùy chỉnh[7]) dễ dàng hơn. Kể từ FPC 2. 6. 2, OpenBSD và NetBSD được hỗ trợ trên kiến ​​trúc IA32 và X86_64. Một mục tiêu mới được nhúng đã được thêm vào để sử dụng mà không cần hệ điều hành (chủ yếu là ARM Cortex M và MIPS). Với InstantFPC, có thể chạy các chương trình Pascal, được dịch đúng lúc, dưới dạng các tập lệnh Unix hoặc CGI back-end

Lõi Ultibo là môi trường phát triển kim loại nhúng hoặc kim loại trần cho Raspberry Pi. [8] Ultibo dựa trên Free Pascal và được phát triển theo phiên bản sửa đổi của Lazarus. IDE dựa trên PC nhưng cũng đã được chuyển sang Linux và Mac. Ultibo là một thời gian chạy không có hệ điều hành và có hỗ trợ cho hầu hết các chức năng và cho phép lập trình viên kiểm soát hoàn toàn phần cứng thông qua các đơn vị RTL. Bộ thực thi thực hiện đa nhiệm, ưu tiên đa nhiệm. Lập trình viên có thể đặt các luồng trên một CPU cụ thể hoặc để bộ thực thi phân chia tải tự động hoặc kết hợp cả hai. Hầu hết các mẫu Raspberry Pi đều được hỗ trợ bao gồm A, B, A+ và B+ cũng như Raspberry Pi 2B, 3B, 4B/400/CM4 và Zero. [9]

Môi trường phát triển tích hợp[sửa | sửa mã nguồn]

Giống như hầu hết các trình biên dịch hiện đại, Free Pascal có thể được sử dụng với môi trường phát triển tích hợp (IDE). Bên cạnh các IDE độc lập, còn có các plugin cho các IDE hiện có khác nhau

Tại sao Pascal không được sử dụng?

Nhưng Pascal không phổ biến vì— mã của nó quá dài và không dễ hiểu .

Pascal có tốt hơn C không?

Phương thức Pascal được cho là nhanh hơn , vì không diễn ra diễn giải, nhưng phương thức C có khả năng mở rộng cao.

Free Pascal có nhanh không?

Tốc độ cao, sử dụng bộ nhớ thấp Là một ngôn ngữ được biên dịch thành mã máy nhanh bởi một trình biên dịch hiện đại, Free Pascal đã có thể làm cho Pascal một trong những ngôn ngữ nhanh nhất hiện có . .

Ngôn ngữ Pascal có còn được sử dụng không?

Được phát triển vào cuối những năm 1960, Pascal là một ngôn ngữ lập trình mệnh lệnh và thủ tục ban đầu được thiết kế để giảng dạy các ngôn ngữ lập trình. Ngày nay, nó hầu như đã bị thay thế bởi C, C++ và Java, nhưng nó vẫn được sử dụng như một phần giới thiệu về lập trình .