باسكال (لغة برمجة)

**باسكال** هي لغة برمجة متعددة الاستخدام تعتمد على الأوامر. وهي معروفة بوضوحها وقوتها وسهولة إنشاء البرامج عن طريقها.

و بالإضافة إلى سهولتها وقوتها، تمتاز لغة باسكال بعدة قواسم مشتركة مع لغة الـسي.غير أن باسكال كان قد صمم في البداية لأسباب تعليمية بحتة وكان مقتصرا على خاصيّات محدودة جدا (فعلى سبيل المثال لم يكون هناك وجود لسلاسل الأحرف)؛ وبالإضافة لكل ذلك فإن كل النسخ المستعملة لباسكال خارج العالم التعليمي هي نسخ معدلة مثل تربو باسكال، دلفي، أوبجكت باسكال.

و في المقابل، فإنه من المعروف أن باسكال فد مكّن من تصميم برامج شهيرة مثل تخ وجزء من أوائل أنظمة التشغيل الخاصة بماكينتوش. وقد تم اقتباس هذه اللغة في لغات أخرى مثل أدا، مودولا-2 (ثم مودولا-3)، أوبرون.

## التقديم والتاريخ
اختُرِعت لغة *باسكال* (التي اتخذت اسمها من عالم الرياضيات الفرنسي (بليز باسكال) عن طريق نيكولاس ويرث خلال السبعينيات من القرن العشرين. وقد تم تصميمها لتفيد في تعليم البرمجة بطريقة سهلة ولكن صحيحة، في محاولة لمجابهة تعقيدات ألغول 68. وهذه اللغة من بين اللغات التي ساعدت على تعليم البرمجة المنظمة. وباعتبار أنه من غير المنصوح به استعمال الـ *[[goto]]* أو القفز داخل البرنامج فإن باسكال يعتمد على الشروط (*if, case*...) والتكرارات (*while*, *for*, *repeat*...) والتي تمتلك كل واحدة منها مدخلا ومخرجا حتى يتم تسهيل التحكم، مما يؤدي إلى برنامج أكثر سرعة وتنظيما.

وتعد هذه اللغة كذلك صارمة في ما يخص تعريف المتغيرات، بمعنى أن كل متغير يجب أن يعرف بنزع عند التجميع. وفي المقابل فإن عدم تأقلمه لتمكين التنقل من النوع حرف إلى النوع سلسلة حروف يعد من نقاط ضعفه.

وقد تمكنت لغة باسكال من التغليل بشكل كبير في الميدان التعليمي ومجال الأبحاث (الجامعات)، وبصفة أقل في الميدان الصناعي.

وقد تم نشر ملفات المجمع P4 المصدرية في الجامعات، بسعر مخفض جدا. وهذا المجمع ينشئ الـ شيفرة البايت، وهو كود لجهاز افتراضي. ولذلك يمكن القول أن البرامج «الباسكالية» كانت سهلة النقل على الأجهزة.

وكان لمجمع UCSD Pascal (UCSD = *University of California at San Diego*)، نجاح كبير خاصة على الأجهزة من نوع أبل II والتي كانت شديدة الانتشار.

و لكن «التوربو» كان من عمل شركة بورلاند الحديثة، والتي أنشأت سنة 1983 والتي قامت بتسويق المجمع توربو باسكال بسعر غاية في التخفيض (49 $ حينها مقابل 500 $ سعر مجمع باسكال من شركة مايكروسوفت والذي لم يكن يمتلك محررا مدمجا حتى).

## تربو باسكال
قام بكتابة تربو باسكال أندريس هيلزبيرغ (وكان اسمه قبل TP، كومباس باسكال ثم بولي باسكال). كان ينشئ لغة الآلة (إكس 86 تحت DOS) وبسرعة نظرا لخفته (12 ك.ب.) واعتماده شبه التام على الرام، لم يعد ينشئ بالتالي الـ P-Code.

وقد كان مرفقا مع بيئة متكاملة (محرر نصوص ومساعدة عن بعد). وما فتئ الباسكال يشهد التحسين تلو الآخر، ففي عام 1987 ظهرت النسخة 4، التي احتوت على بيئة برمجة مدمجة متكاملة. وفي عام 1989 ظهرت النسخة 5.5، التي امتازت بدمجها لمفهوم الشيء (Object). وفي عام 1990، مكنت النسخة 6 من برمجة نوافذ (تحت صندوق الأوامر DOS). ثم في عام 1993، ظهرت آخر نسخة، وهي النسخة السابعة لنظام تشغيل دوس لنظام ويندوز.

أصدرت شركة بورلاند سنة 1995 لغة دلفي للتأقلم مع البرمجة المرئية التي أطلقتها مايكروسوفت مع فيجوال ستوديو وكانت دلفي مجمعا حقيقيا ينشئ لغة الآلة.

عام 2001 أطلقت شركة بورلاند كيليكس، وهو المرادف لدلفي الخاص بمنظومة لينكس. وكان بسكال يعمل بلغة الآلة المنشأة منذ عام 1962 وكانت هذه اللغة هي (الاسمبلي).

## فري باسكال
بعد توقف تيربو باسكال عن الإنتاج، والانتقال إلى لغة دلفي، قام فريق فري باسكال بإنتاج بديل لتيربو باسكال مجاني مفتوح المصدر منافس للغة السي++، وهو متوافق مع لغة دلفي، ويعمل على عدد كبير من المنصات مثل لينكس، ويندوز، ماكنتوش، وآرم، وغيرها الكثير. وقد صدر الإصدار الأول منه منتصف عام 2000، والإصدار الأخير منه الآن هو 2.4.
وتوجد له بيئة متكاملة في عدد من المنصات تسمى لازاروس وهي مصممة بواسطة فري باسكال نفسه، وهي مشابهة لبيئة تطوير دلفي 7 وقد صدر الإصدار الأول منه بعد تطوير اجتمع عليه خبراء من مختلف الدول.

## أمثلة
* برنامج أهلا بالعالم التقليدي:

```pascal
Program HelloWorld(output);
begin
  writeLn('Hello, World!');
end.
```

* برنامج جدول الضرب:


```pascal
program MultiplicationTable;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  X, I: Integer;
begin
  Write('Please input a number: ');
  Readln(X);
  for I  = 1 to 12 do
    Writeln(X، ' * ', I، ' = ', x * i);

end.
```

* برنامج المضروب:


```pascal
program Factorial;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  Num, i: Integer;
  Fac: Integer;
begin
  Write('Please enter a number: ');
  Readln(Num);
  Fac = 1;
  for I  = Num downto 2 do
    Fac = Fac * I;
  Writeln('Factorial of ', Num, ' is ', Fac);
end.
```


## انظر أيضاً

* فري باسكال
* لازاروس

## مراجع

## وصلات خارجية

* موقع فري باسكال
* موقع لازاراس
* موقع موج: المصدر المفتوح لعدة لغات برمجية، وتعليمي أيضاً
* موقع الباسكال بالعربية دورة تعليمية مميزة

تصنيف:استحداثات عام 1970
تصنيف:المعايير البريطانية
باسكال
تصنيف:برمجيات 1970
تصنيف:برمجيات حرة
تصنيف:عائلة لغة البرمجة باسكال
تصنيف:لغات البرمجة التعليمية
تصنيف:لغات برمجة أنشئت في 1970
تصنيف:لغات برمجة عالية المستوى
تصنيف:معايير الأيزو