📐 Pascal
概述:Pascal 由 Niklaus Wirth 于 1970 年设计,是一种结构化编程语言。Pascal 以法国数学家布莱兹·帕斯卡命名,最初为教学目的设计,强调良好的编程习惯和结构化程序设计。
概述
Pascal 属于 其他小众/经典语言 分类。Pascal 对后来的语言设计产生了深远影响,Ada、Delphi、Go 等语言都从 Pascal 中汲取了灵感。
语言特点
- 结构化编程:倡导顺序、选择、循环三种基本结构
- 强类型:编译期严格类型检查,减少运行时错误
- 可读性强:语法接近自然语言,Begin/End 而非花括号
- 教学导向:设计初衷就是教授编程方法论
- 编译快速:单遍编译器设计,编译速度极快
Hello World
pascal
program HelloWorld;
begin
WriteLn('Hello, World!');
end.基础语法
变量与数据类型
pascal
var
age: Integer;
name: String;
price: Real;
isActive: Boolean;
ch: Char;
begin
age := 25;
name := 'Pascal';
price := 99.99;
isActive := True;
end.控制流
pascal
{ if-then-else }
if age >= 18 then
WriteLn('成年人')
else if age >= 12 then
WriteLn('青少年')
else
WriteLn('儿童');
{ for 循环 }
for i := 1 to 10 do
WriteLn(i);
{ downto }
for i := 10 downto 1 do
WriteLn(i);
{ while 循环 }
while count > 0 do
begin
count := count - 1;
end;
{ repeat-until }
repeat
count := count - 1;
until count = 0;
{ case }
case day of
1: WriteLn('Monday');
2: WriteLn('Tuesday');
3..5: WriteLn('Midweek');
else
WriteLn('Weekend');
end;过程与函数
pascal
{ 过程(无返回值)}
procedure Greet(name: String);
begin
WriteLn('Hello, ' + name + '!');
end;
{ 函数 }
function Add(a, b: Integer): Integer;
begin
Add := a + b; { 函数名赋值返回 }
end;
{ 调用 }
Greet('Pascal');
result := Add(3, 5);记录与枚举
pascal
{ 枚举 }
type
DayOfWeek = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
{ 记录(类似结构体)}
type
Person = record
name: String;
age: Integer;
end;
var
alice: Person;
begin
alice.name := 'Alice';
alice.age := 30;
WriteLn(alice.name, ' is ', alice.age);
end.应用领域
- 教学编程:计算机科学入门教学
- 桌面应用:传统桌面软件开发
- 嵌入式开发:嵌入式系统编程
- 编译器开发:语言和编译器教学
- 科学计算:数值分析和算法实现
开发环境搭建
- Free Pascal:
sudo apt install fpc - 编译运行:
fpc hello.pas && ./hello - Lazarus IDE:Free Pascal 的可视化开发环境
- 在线编译:OnlineGDB、JDoodle
学习路线
- 入门阶段:基本语法 → 变量与类型 → 控制流 → 过程与函数
- 进阶阶段:记录与数组 → 文件操作 → 指针 → 递归
- 实战阶段:算法实现 → 数据结构 → 小型应用
- 高级阶段:面向对象 Pascal → GUI 开发(Lazarus)→ 编译原理