stanford-oval/wikipedia huggingface dataset:
Pascal (ngôn ngữ lập trình)

Đối với các định nghĩa khác, xem Pascal (định hướng).
| --- | --- |

Mẫu hình: Imperative Structured
Thiết kế bởi: Niklaus Wirth
Xuất hiện lần đầu: 1970; 54 năm trước (1970)
Kiểm tra kiểu: Static Strong Safe
Phần mở rộng tên tập tin: .pp, .pas, .inc,
Các bản triển khai lớn
CDC 6000 Embarcadero Delphi ICL 1900 Pascal-P PDP-11 PDP-10 IBM System/370 HP Pascal Free Pascal GNU Pascal
Phương ngữ
Delphi Turbo Pascal UCSD Pascal
Ảnh hưởng từ
 ALGOL W  Simula 67 
Ảnh hưởng tới
 Ada  Component Pascal  Go  Java  Modula / -2 / -3  Oberon / -2  Object Pascal  Oxygene  Seed7  Structured text 
Pascal là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp với kiểu lập trình cấu trúc và cấu trúc dữ liệu. Ngôn ngữ lập trình này được đặt theo tên của nhà toán học, triết học và nhà vật lí người Pháp Blaise Pascal.
Dựa trên cuốn sách của Wirth, Thuật toán + Cấu trúc dữ liệu = Chương trình, Pascal được phát triển trên khuôn mẫu của ngôn ngữ ALGOL 60. Wirth đã tham gia vào quá trình cải thiện ngôn ngữ như một phần của nỗ lực ALGOL X và đề xuất một phiên bản được gọi là ALGOL W. Điều này không được chấp nhận và quá trình ALGOL X đã bị sa lầy. Năm 1968, Wirth quyết định từ bỏ quy trình ALGOL X và cải tiến hơn nữa ALGOL W, phát hành quy trình này với tên Pascal vào năm 1970.
Ngoài các mảng và biến của ALGOL, Pascal cho phép xác định các kiểu dữ liệu phức tạp và xây dựng các cấu trúc dữ liệu động và đệ quy như danh sách, cây và đồ thị. Pascal có khả năng xếp kiểu mạnh trên tất cả các đối tượng, có nghĩa là một loại dữ liệu không thể được chuyển đổi hoặc hiểu như một loại dữ liệu khác nếu không có các chuyển đổi rõ ràng. Không giống như C (và hầu hết các ngôn ngữ trong họ C), Pascal cho phép các định nghĩa thủ tục lồng nhau ở bất kỳ độ sâu nào, và cũng cho phép hầu hết các loại định nghĩa và khai báo bên trong chương trình con (thủ tục và hàm). Do đó, về mặt cú pháp, một chương trình tương tự như một thủ tục hoặc một hàm. Điều này tương tự như cấu trúc khối của ALGOL 60, nhưng bị hạn chế từ các câu lệnh khối tùy ý chỉ với các thủ tục và hàm.
Pascal trở nên rất thành công trong những năm 1970, đặc biệt là trên thị trường máy tính mini đang phát triển mạnh. Các trình biên dịch cho ngôn ngữ này cũng có sẵn cho nhiều máy vi tính khi lĩnh vực này xuất hiện vào cuối những năm 1970. Nó đã được sử dụng rộng rãi như một ngôn ngữ giảng dạy trong các khóa học lập trình cấp đại học vào những năm 1980, và cũng được sử dụng trong cài đặt sản xuất để viết phần mềm thương mại trong cùng thời kỳ. Nó bị ngôn ngữ lập trình C thay thế vào cuối những năm 1980 và đầu những năm 1990 khi các hệ thống dựa trên UNIX trở nên phổ biến, và đặc biệt là với sự ra đời của C++.
Một ngôn ngữ dẫn xuất được gọi là Object Pascal được thiết kế cho lập trình hướng đối tượng được phát triển vào năm 1985; nó đã được Apple Computer và Borland sử dụng vào cuối những năm 1980 và sau đó được phát triển thành Delphi trên nền tảng Microsoft Windows.
Lịch sử > Những nỗ lực ban đầu

Phần lớn lịch sử của thiết kế ngôn ngữ máy tính trong những năm 1960 là ngôn ngữ ALGOL 60. ALGOL được phát triển trong những năm 1950 với mục tiêu rõ ràng để có thể mô tả rõ ràng các thuật toán. Nó bao gồm một số tính năng cho lập trình có cấu trúc vẫn còn phổ biến trong các ngôn ngữ cho đến ngày nay.
Ngay sau khi được giới thiệu, vào năm 1962, Wirth bắt đầu nghiên cứu luận án của mình với Helmut Weber về ngôn ngữ lập trình Euler. Euler được dựa trên cú pháp của ALGOL. Mục tiêu chính của nó là thêm các danh sách và kiểu động, cho phép nó được sử dụng trong các vai trò tương tự như Lisp. Ngôn ngữ được xuất bản vào năm 1965.
Vào thời gian này, một số vấn đề của ALGOL đã được xác định, đặc biệt là thiếu một hệ thống chuỗi tiêu chuẩn hóa. Nhóm được giao nhiệm vụ duy trì ngôn ngữ đã bắt đầu thực hiện ALGOL X để xác định các cải tiến, kêu gọi đệ trình. Wirth và Tony Hoare đã thêm chuỗi và làm mới một số cú pháp. Các nỗ lực của ALGOL X làm cho ngôn ngữ ngày càng phức tạp hơn ALGOL 68. Sự phức tạp của ngôn ngữ này dẫn đến khó khăn đáng kể trong việc tạo ra các trình biên dịch hiệu suất cao, và nó không được sử dụng rộng rãi trong ngành. Do đó, Wirth đã viết một trình biên dịch cho ngôn ngữ máy tính, được gọi là ALGOL W.
Lịch sử > Pascal

Pascal là thành quả bởi những nỗ lực về ALGOL W, với mục tiêu rõ ràng là tạo ra một ngôn ngữ có hiệu quả cả trong trình biên dịch và thời gian chạy, cho phép phát triển các chương trình có cấu trúc tốt và hữu ích cho việc dạy học sinh lập trình có cấu trúc. Một thế hệ sinh viên đã sử dụng Pascal như một ngôn ngữ vỡ lòng trong các chương trình học đại cương.
Một trong những thành công ban đầu cho ngôn ngữ là việc giới thiệu UCSD Pascal, một phiên bản chạy trên một hệ điều hành tùy chỉnh có thể được chuyển sang các nền tảng khác nhau. Một nền tảng quan trọng đó là Apple II, nơi mà nó được sử dụng rộng rãi. Điều này dẫn đến việc sử dụng Pascal trở thành ngôn ngữ cấp cao chính được sử dụng để phát triển trong Apple Lisa, và sau đó, Macintosh. Các bộ phận của hệ điều hành Macintosh ban đầu được dịch sang ngôn ngữ lắp ráp Motorola 68000 từ các nguồn Pascal.
Hệ thống sắp xếp chữ TeX của Donald E. Knuth được viết bằng WEB, hệ thống lập trình biết chữ gốc, dựa trên DEC PDP-10 Pascal, trong khi các ứng dụng như Total Commander, Skype và Macromedia Captivate được viết bằng Delphi (Object Pascal). Apollo Computer đã sử dụng Pascal làm ngôn ngữ lập trình hệ thống cho các hệ điều hành của nó bắt đầu từ năm 1980.
Các biến thể của Pascal cũng thường được sử dụng cho mọi thứ từ các dự án nghiên cứu tới các trò chơi máy tính cá nhân và các hệ thống nhúng. Các trình biên dịch Pascal mới tồn tại được sử dụng rộng rãi.
Lịch sử > Object Pascal

Trong quá trình làm việc tại Lisa, Larry Tesler bắt đầu thảo luận với Wirth về ý tưởng thêm các phần mở rộng hướng đối tượng vào ngôn ngữ. Điều này dẫn đến việc Clascal được giới thiệu vào năm 1983. Khi chương trình Lisa đã bị mất dần chỗ đứng và được thay thế bởi Mac, một phiên bản tiếp theo được gọi là Object Pascal đã được tạo ra. Điều này đã được giới thiệu trên Macintosh vào năm 1985 như một phần của khung ứng dụng MacApp, và trở thành ngôn ngữ phát triển chính của Apple vào đầu những năm 1990.
Các phần mở rộng Object Pascal sau đó được bổ sung vào Turbo Pascal, và qua nhiều năm đã trở thành hệ thống Delphi cho Microsoft Windows. Delphi vẫn được sử dụng để phát triển các ứng dụng Windows, nhưng cũng có khả năng biên dịch cùng mã với Mac, iOS, Android và Linux. Một phiên bản đa nền tảng khác được gọi là Free Pascal, với Lazarus IDE, là phổ biến với người dùng Linux vì nó cũng cung cấp viết một lần, biên dịch bất cứ nơi nào. CodeTyphon là một bản phân phối Lazarus với nhiều gói được cài đặt sẵn và các trình biên dịch đa nền tảng.
Mô tả ngắn gọn

Ý định của Wirth là tạo ra một ngôn ngữ hiệu quả (liên quan đến cả tốc độ biên dịch và mã được tạo ra) dựa trên lập trình có cấu trúc, một khái niệm được phổ biến gần đây mà ông đã quảng bá trong cuốn sách của mình Thuật toán + Cấu trúc dữ liệu = Chương trình (Algorithms + Data Structures = Programs). Pascal có nguồn gốc từ ngôn ngữ ALGOL 60 cho phép các lập trình viên xác định các kiểu dữ liệu phức tạp và cũng dễ dàng hơn trong việc xây dựng cấu trúc dữ liệu động và đệ quy. Chẳng hạn như danh sách, cây cối và đồ thị. Các tính năng quan trọng được đưa vào đây là các bản ghi, liệt kê, phân nhóm, các biến phân bổ động với con trỏ liên quan và tập hợp. Để làm cho điều này có thể và có ý nghĩa, Pascal có cách kiểu mạnh vào tất cả các đối tượng, có nghĩa là một loại dữ liệu không thể được chuyển đổi hoặc được hiểu là một loại dữ liệu khác mà không thể chuyển đổi rõ ràng. Các cơ chế tương tự là tiêu chuẩn trong nhiều ngôn ngữ lập trình ngày nay. Các ngôn ngữ khác ảnh hưởng đến sự phát triển của Pascal là Simula 67 và ALGOL W của Wirth.
Pascal, giống như nhiều ngôn ngữ lập trình ngày nay (nhưng không giống như hầu hết các ngôn ngữ trong họ C), cho phép định nghĩa quy trình lồng nhau ở bất kỳ mức độ sâu nào. Điều này cho phép tạo một cú pháp rất đơn giản và mạch lạc trong đó một chương trình hoàn chỉnh là gần như giống hệt với một thủ tục hoặc hàm duy nhất.
Triển khai > Trình biên dịch Pascal ban đầu

Trình biên dịch Pascal đầu tiên được thiết kế trong Zürich cho dòng máy tính lớn CDC 6000, được viết và xây dựng tại Đại học Illinois dưới sự chỉ đạo của Donald B. Gillies cho loại máy tính PDP-11 và ngay từ lúc này đã có thể sinh ra mã máy trực tiếp. Niklaus Wirth báo cáo rằng một nỗ lực đầu tiên để thực hiện nó ở Fortran năm 1969 đã không thành công do Fortran không đủ khả năng thể hiện cấu trúc dữ liệu phức tạp. Nỗ lực thứ hai được thực hiện bằng ngôn ngữ giống ngôn ngữ C (Scallop của Max Engeli) và sau đó được dịch bằng tay (bởi R. Schild) thành Pascal để khởi động. Nó hoạt động vào giữa năm 1970. Nhiều trình biên dịch Pascal vì đã tự lưu trữ, có nghĩa là trình biên dịch được viết bằng Pascal và trình biên dịch thường có khả năng biên dịch lại khi các tính năng mới được thêm vào ngôn ngữ, hoặc khi trình biên dịch được chuyển đến môi trường mới. Trình biên dịch GNU Pascal là một ngoại lệ đáng chú ý, được viết bằng ngôn ngữ C.
Thành công đầu tiên của trình biên dịch CDC Pascal đến từ một máy tính lớn khác được hoàn thành bởi Welsh và Quinn tại Đại học Queen's Belfast (QUB) vào năm 1972. Trình biên dịch này, lần lượt, là cha mẹ của trình biên dịch Pascal cho máy tính mini đa hệ thống thông tin (ICS). Cổng Multum được phát triển - với mục đích sử dụng Pascal như một ngôn ngữ lập trình hệ thống - bởi Findlay, Cupples, Cavouras và Davis, làm việc tại Khoa Khoa học Máy tính tại Đại học Glasgow. Người ta nghĩ rằng Multum Pascal, được hoàn thành vào mùa hè năm 1973, có thể đã được thực hiện 16-bit đầu tiên.
Một trình biên dịch hoàn toàn mới được hoàn thành bởi Welsh et al. tại QUB năm 1977. Nó cung cấp một tính năng chẩn đoán ngôn ngữ nguồn (kết hợp các lược đồ định hình, truy tìm và nhận dạng được định dạng kiểu) được triển khai bởi Findlay và Watt tại Đại học Glasgow. Việc triển khai này được chuyển vào năm 1980 cho dòng ICL 2900 của một nhóm có trụ sở tại Đại học Southampton và Đại học Glasgow.
Đầu thập niên 1980, UCSD Pascal đã có phiên bản dành cho các máy Apple II và Apple III để có các phiên bản tương ứng thay thế trình thông dịch BASIC đi kèm với các loại máy này trong thời gian trước đó.
Việc thực hiện mô hình chuẩn Pascal cũng dựa trên trình biên dịch này, đã được điều chỉnh bởi Welsh và Hay tại Đại học Manchester vào năm 1984, để kiểm tra nghiêm ngặt sự phù hợp với tiêu chuẩn BSI 6192 / ISO 7185 và tạo mã cho một máy trừu tượng di động.
Trình biên dịch giá rẻ của Borland đã gây ra ảnh hưởng lớn đến cộng đồng lập trình viên Pascal, họ hầu như tập trung hết vào lập trình cho máy IBM-PC trong những năm cuối thập niên 1980. Rất nhiều người cũng đã sử dụng sản phẩm này thay cho BASIC.
Triển khai > Hệ thống Pascal-P

Để nhanh chóng phổ biến rộng rãi ngôn ngữ này, một bộ công cụ chuyển mã được viết tại Zurich bao gồm một trình biên dịch sang "mã máy ảo" (hay dễ hiểu hơn, mã trung gian giữa mã máy và mã nguồn), và bộ giả lập cho loại mã này. Bộ công cụ này sau đó trở thành hệ thống giả (P-system). Mặc dù hệ thống này được phát triển nhằm tạo ra các trình biên dịch sinh mã máy trên ít nhất một hệ thống, nhưng kết quả đáng kể nhất chỉ là trình thông dịch cho hệ thống giả UCSD. Các trình biên dịch hệ thống P được gọi là Pascal-P1, Pascal-P2, Pascal-P3 và Pascal-P4. Pascal-P1 là phiên bản đầu tiên, và Pascal-P4 là người trình biên dịch cuối cùng của nhóm tại Zurich. Phiên bản được gọi là Pascal-P1 được đặt ra sau để nhiều nguồn khác nhau cho Pascal-P tồn tại. Trình biên dịch được thiết kế lại để nâng cao tính di động và được phát hành dưới dạng Pascal-P2. Mã này sau đó được cải tiến để trở thành Pascal-P3, với một mã trung gian tương thích ngược với Pascal-P2 và Pascal-P4.
Trình biên dịch Pascal-P4 vẫn có thể chạy và biên dịch trên các hệ thống tương thích với Pascal gốc. Tuy nhiên, nó chỉ chấp nhận một tập con của ngôn ngữ Pascal.
Pascal-P5, được tạo ra bên ngoài nhóm Zurich, sử dụng ngôn ngữ Pascal đầy đủ và bao gồm khả năng tương thích ISO 7185.
UCSD Pascal phân nhánh Pascal-P2, nơi Kenneth Bowles sử dụng nó để tạo ra hệ thống p UCSD giải thích. Hệ thống p UCSD là một trong ba hệ điều hành có sẵn khi ra mắt Máy tính cá nhân IBM gốc. UCSD Pascal đã sử dụng một mã trung gian dựa trên các giá trị byte, và do đó là một trong những trình biên dịch mã byte đầu tiên. Pascal-P1 không thông qua Pascal-P4, mà là dựa trên chiều dài từ CDC 6600 60 bit.
Trình biên dịch dựa trên trình biên dịch Pascal-P4, đã tạo ra các tệp nhị phân gốc, được phát hành cho máy tính lớn IBM System / 370 của Ủy ban Năng lượng Nguyên tử Úc (Australian Atomic Energy Commission); nó được gọi là "AAEC Pascal Compiler".
Vào đầu những năm 1980, Watcom Pascal đã được phát triển, cũng cho hệ thống IBM 370.
Vào những năm 1990, Pascal vẫn đang chạy trên các thiết bị VAX tại Đại học George Mason để dạy lập trình máy tính.
Triển khai > Object Pascal

Apple Computer đã tạo ra Lisa Pascal của riêng mình cho Lisa Workshop vào năm 1982 và chuyển trình biên dịch sang Apple Macintosh và MPW năm 1985. Năm 1985, Larry Tesler, tham vấn với Niklaus Wirth, đã định nghĩa Object Pascal và các phần mở rộng này được tích hợp trong cả trình biên dịch Lisa Pascal và Mac Pascal.
Borland quyết định cần phải có nhiều tính năng hướng đối tượng tinh vi và phức tạp hơn, và đã bắt đầu sản phẩm Delphi, sử dụng sơ đồ thiết kế của Object Pascal do Apple đưa ra làm cơ sở. (Sơ đồ của Apple vẫn chưa phải là chuẩn.) Borland cũng gọi đây là Object Pascal trong phiên bản Delphi đầu tiên nhưng đổi tên thành Delphi trong các phiên bản sau đó. Các bổ sung chính so với các phần mở rộng lập trình hướng đối tượng trước là mô hình đối tượng, các hàm dựng và hàm hủy ảo, các thuộc tính đều mang tính tham chiếu. Có một vài trình biên dịch khác cũng hỗ trợ các tính năng này.
Triển khai > Các biến thể khác

Super Pascal là một biến thể của Pascal, bổ sung nhãn không có số, trả lại biểu thức hay mệnh đề là tên của kiểu dữ liệu.
Các trường đại học Wisconsin-Madison, Zürich, Karlsruhe và Wuppertal đã phát triển các trình biên dịch Pascal-SC và Pascal-XSC, nhằm lập trình tính toán số.
TMT Pascal trình biên dịch tương thích Borland đầu tiên cho chế độ bảo vệ DOS 32-bit, hệ điều hành OS/2 và Win32. Ngoài ra ngôn ngữ TMT Pascal là ngôn ngữ đầu tiên cho phép quá tải hàm và toán tử. Pascal-SC ban đầu nhắm vào bộ vi xử lý Z80, nhưng sau này được viết lại cho DOS (x86) và 68000. Pascal-XSC có lúc được chuyển sang Unix (Linux, SunOS, HP-UX, AIX) và Microsoft / IBM (DOS với Hệ điều hành EMX, OS/2, Windows). Nó hoạt động bằng cách tạo mã nguồn trung gian C, sau đó được biên dịch thành một tệp thực thi nguyên gốc. Một số phần mở rộng ngôn ngữ Pascal-SC đã được chấp nhận bởi GNU Pascal.
Pascal Sol được thiết kế vào khoảng năm 1983 bởi một nhóm người Pháp để thực hiện một hệ thống giống Unix có tên Sol. Đó là tiêu chuẩn Pascal level-1 (với giới hạn mảng tham số) nhưng định nghĩa cho phép từ khóa thay thế và định danh được xác định trước bằng tiếng Pháp và ngôn ngữ bao gồm một vài phần mở rộng để giảm bớt lập trình hệ thống. Nhóm Sol sau này đã chuyển sang dự án ChorusOS để thiết kế một hệ điều hành phân tán.
IP Pascal là một triển khai thực hiện ngôn ngữ lập trình Pascal bằng cách sử dụng Micropolis DOS, nhưng đã được chuyển nhanh sang CP/M-80 chạy trên Z80. Nó đã được chuyển sang các kiểu máy 80386 vào năm 1994, và tồn tại ngày nay như các triển khai Windows/XP và Linux. Trong năm 2008, hệ thống đã được đưa lên một cấp độ mới và ngôn ngữ kết quả được gọi là "Pascaline" (sau khi máy tính của Pascal). Nó bao gồm các đối tượng, các điều khiển vùng tên, mảng động, cùng với nhiều phần mở rộng khác, và thường có tính năng bảo vệ và chức năng giống như C #. Nó là chỉ thực hiện như vậy cũng tương thích với việc thực hiện Pascal ban đầu, được chuẩn hóa theo tiêu chuẩn ISO 7185.
Smart Mobile Studio được tạo ra bởi Jon Aasenden và biên dịch phương ngữ riêng của mình về Object Pascal thành HTML5/Javascript.
Và như chúng ta biết ngôn ngữ lập trình đứng đầu là Python với lượng người áp đảo C++.
Chuẩn hóa > ISO/IEC 7185: 1990 Pascal

Năm 1983, ngôn ngữ được chuẩn hoá, theo tiêu chuẩn quốc tế IEC/ISO 7185 và một số tiêu chuẩn cụ thể của quốc gia khác bao gồm ANSI/IEEE770X3.97-1983 và ISO 7185:1983 đều của Mỹ. Hai tiêu chuẩn này chỉ khác nhau ở chỗ tiêu chuẩn ISO bao gồm phần mở rộng "cấp 1" trong đó ANSI không cho phép phần mở rộng này vào bản gốc (Wirth). Năm 1989, ISO 7185 được sửa đổi.
Chuẩn ISO 7185 được phát triển với mục đích là sự chọn lọc của ngôn ngữ 1974 của Writh, được đề cập chi tiết trong cuốn "Hướng dẫn sử dụng và Báo cáo của Jensen và Wirth", bổ sung đáng kể nhất là "Các tham số mảng phù hợp" được coi là mức 1 của tiêu chuẩn, mức 0 là Pascal không có mảng phù hợp.
Trên các máy tính lớn mà Pascal xuất phát (mainframe và minicomputer), các tiêu chuẩn này thường được tuân theo. Tuy vậy trên IBM-PC thì ngược lại. Trên các máy tính IBM-PC, chuẩn của Turbo Pascal và Delphi của Borland có lượnng người dùng nhiều nhất. Do vậy, biết liệu một phiên bản riêng biệt tương ứng với ngôn gữ Pascal ban đầu, hay ngôn ngữ riêng của Borland là khá quan trọng.
Chuẩn hóa > ISO/IEC 10206: Mở rộng Pascal 1990

Năm 1990, một chuẩn Pascal mở rộng được tạo ra dựa theo tiêu chuẩn ISO/IEC 10206, giống hệt về nội dung kỹ thuật cho IEEE/ANSI 770X3.160-1989.
Chuẩn hóa > ISO/IEC 10206: Mở rộng Pascal 1990 > biến thế

Phiên bản Pascal của Niklaus Wirth ở Zurich được phát hành dưới hai dạng cơ bản, nguồn trình biên dịch CDC 6000 và một bộ chuyển mạch gọi là hệ thống Pascal-P.
UCSD Pascal của Giáo sư Kenneth Bowles dựa trên bộ Pascal-P2 chia sẻ một số hạn chế ngôn ngữ Pascal-P. UCSD Pascal sau đó được gọi là Apple Pascal. Mặc dù UCSD Pascal thực sự mở rộng tập hợp con Pascal trong bộ Pascal-P bằng cách thêm lại các cấu trúc Pascal chuẩn, song nó vẫn không phải là một bản cài đặt chuẩn hoàn chỉnh của Pascal.
Đầu thập niên 1990, Alan Burns và Geoff Davies đã phát triển Pascal-FC, một phần mở rộng cho Pl/0 (từ cuốn sách của Niklaus 'Thuật toán + Cấu trúc dữ liệu = Chương trình'). Một số cấu trúc đã được thêm vào để sử dụng Pascal-FC như một công cụ giảng dạy cho lập trình đồng thời. Để có thể chứng minh sự tương tranh, đầu ra của trình biên dịch (một loại mã P) có thể được thực hiện trên một máy ảo. Máy ảo này không chỉ mô phỏng một môi trường bình thường, mà còn có thể mô phỏng các điều kiện khắc nghiệt.
Chuẩn hóa > ISO/IEC 10206: Mở rộng Pascal 1990 > Các trình biên dịch Pascal giống như Borland

Turbo Pascal của Borland, được viết bởi Anders Hejlsberg, được viết bằng hợp ngữ độc lập với UCSD.
Turbo Pascal phiên bản 3 và các phiên bản sau này, bao gồm Object Pascal và Delphi của Borland và các phần tử tương thích không phải Borland trở nên phổ biến với các lập trình viên bao gồm các tác giả chia sẻ và thư viện SWAG của mã Pascal.
Các sản phẩm phần mềm bao gồm:
Turbo Pascal - "TURBO.EXE" lên đến phiên bản 7 và Turbo Pascal cho Windows ("TPW") và Turbo Pascal cho Macintosh.
Borland Pascal 7 (về cơ bản là Turbo Pascal 7 cho Windows).
Object Pascal - một phần mở rộng của ngôn ngữ Pascal được phát triển tại Apple Computer bởi một nhóm do Larry Tesler đứng đầu với sự tham vấn của Niklaus Wirth, người phát minh ra Pascal; các tính năng của nó đã được bổ sung vào Turbo Pascal của Borland cho Macintosh và vào năm 1989 cho Turbo Pascal 5.5 cho DOS.
Delphi - Object Pascal về cơ bản là ngôn ngữ cơ bản của nó.
Free Pascal (hoặc fpc) - Free Pascal đã sử dụng phương ngữ chuẩn thực tế cho các lập trình viên Pascal, Borland Pascal và sau đó là Delphi.
PascalABC.NET - là một ngôn ngữ lập trình Pascal thế hệ mới bao gồm cả trình biên dịch và môi trường phát triển tích hợp (IDE)
Borland Kylix là một trình biên dịch và môi trường phát triển tích hợp (IDE) trước đây được bán bởi Borland, nhưng sau đó đã ngừng hoạt động.
Lazarus - tương tự như Kylix, là một môi trường phát triển tích hợp (IDE) trực quan miễn phí để phát triển ứng dụng nhanh (RAD) bằng trình biên dịch Free Pascal, hỗ trợ các phương ngữ của Object Pascal
Virtual Pascal - VP2/1 là một trình biên dịch Pascal 32 bit Borland Delphi và Borland Delphi tương thích hoàn toàn cho OS/2 và Win 32.
Sybil là một IDE và trình biên dịch giống như Delphi nguồn mở; bao gồm WDSibyl cho Microsoft Windows và OS/2, một môi trường tương thích Borland Pascal thương mại được phát hành bởi một công ty có tên Speedsoft mà sau này được phát triển thành RAD được gọi là Sybil
Chuẩn hóa > ISO/IEC 10206: Mở rộng Pascal 1990 > Danh sách các tiêu chuẩn liên quan

ISO 8651-2: 1988 Hệ thống xử lý thông tin - Đồ họa máy tính - Các ràng buộc ngôn ngữ hệ thống đồ họa (GKS) - Phần 2: Pascal
Đặc điểm

Pascal ở dạng nguyên thủy của nó là một ngôn ngữ thuần túy và bao gồm các cấu trúc điều khiển giống như ALGOL truyền thống với các từ dành riêng như if, then, else, while, for và case khác nhau trên một câu lệnh khối lệnh. Pascal cũng có cấu trúc dữ liệu cấu trúc của ngôn ngữ lập trình ALGOL 60 như bản ghi, biến thể, con trỏ, liệt kê và bộ. Những cấu trúc như vậy được lấy cảm hứng từ Simula 67, ALGOL 68, ALGOL W của Niklaus Wirth và được đề xuất bởi C. A. R. Hoare.
Đặc điểm > Dễ học, dễ đọc

Pascal có khá nhiều từ khoá, so với C, Pascal sử dụng các từ nhiều hơn là ký hiệu. Pascal đã trở thành một trong những ngôn ngữ được nhiều quốc gia chọn để dạy học trong chương trình học phổ thông. Nhiều chương trình Pascal có thể đọc dưới dạng văn xuôi rất dễ dàng.
Pascal không phân biệt chữ HOA với chữ thường
Đặc điểm > Trình bày

Phần chính của mọi chương trình Pascal là khối lệnh (main). Một khối lệnh bắt đầu bằng từ khoá Begin và kết thúc bằng End. Trước chương trình chính sẽ là các khai báo thư viện, biến, thủ tục, hàm,... Các câu lệnh trong Pascal được ngăn cách bằng dấu chấm phẩy (";"). Câu lệnh cuối cùng của một khối lệnh có thể giản lược đi một dấu chấm phẩy. Cuối chương trình luôn có một dấu chấm sau end (end.).
begin
    writeln('Hello World');
end.
Pascal, nguyên thể đơn thuần là ngôn ngữ lập trình thủ tục với một loạt các từ khóa chuẩn if, while, for, và các thành phần khác. Pascal là một ngôn ngữ hỗ trợ cả lập trình có cấu trúc lẫn lập trình hướng đối tượng. Hướng đối tượng bắt đầu được đưa vào Turbo Pascal ở phiên bản 5.5. Free Pascal cũng đưa hướng đối tượng vào từ rất sớm.
while a <> b do WriteLn('Chao Ban');

if a > b then
    writeln('Thoa man dieu kien')
else
    writeln('Khong thoa man dieu kien');

for i:= 1 to 10 do writeln('Lap: ', i:1);

repeat a:= a + 1 until a = 10;
Pascal cấu trúc các chương trình thành các thủ tục và hàm.
program mine(output);

    procedure print(var i: integer);

        function next(i: integer): integer;
        begin
            next:= i + 1
        end;

    begin
        writeln('Tong la: ', i);
        i:= next(i)
    end;

begin
    i:= 1;
    while i <= 10 do print(i)
end.
Các thủ tục và hàm có thể lồng vào nhau theo nhiều cấp, và từ program là khối cấu trúc ngoài cùng nhất. Trước mỗi khối là phần khai báo. Ta có thể khai báo các hằng, các biến, các kiểu, hoặc các nhãn. Các từ khoá var (biến), type (kiểu), const (hằng), label (nhãn) được đặt trước các khai báo có cùng thể loại. Chú thích của Pascal được đặt trong ngoặc nhọn, ví dụ: { comment }, hoặc là ngoặc đơn với sao, ví dụ: (* comment *), trong Free Pascal, ký hiệu // chỉ ra rằng các ký tự sau đó (ở cùng dòng với nó) là chú thích, ví dụ: // comment. Chú thích không ảnh hưởng đến các lệnh của chương trình. Mọi chú thích sẽ tự động bỏ qua trong tiến trình dịch.
{ đây là chú thích }
  begin
    writeln('Viet Nam');
    writeln('Hoang Sa, Truong Sa la cua Viet Nam!')
  end.
Kiểu dữ liệu

Pascal gồm các kiểu đơn lẻ như integer, char, boolean, kiểu đoạn con,... Ngoài ra còn kiểu cấu trúc như array, string, record, object, class,... Cuối cùng là kiểu số thực: real.