باسكال (لغة برمجة)
من ويكيبيديا، الموسوعة الحرة
باسكال لغة برمجة تعتمد على الأوامر. و هي معروفة بوضوحها و قوتها و سهولة إنشاء البرامج عن طريقها. و هو ما يجعل من باسكال اللغة البرمجية الأكثر استعمالا في التدريس حتى وقت قريب.
و بالإضافة إلى سهولتها و قوتها، تمتاز لغة باسكال بعدة قواسم مشتركة مع لغة الـسي.غير أن باسكال كان قد صمم في البداية لأسباب تعليمية بحتة و كان مقتصرا على خاصيّات محدودة جدا (فعلى سبيل المثال لم يكون هناك وجود لسلاسل الأحرف)؛ و بالإضافة لكل ذلك فإن كل النسخ المستعملة لباسكال خارج العالم التعليمي هي نسخ معدلة مثل توربو باسكال، دلفي، أوبجكت باسكال.
و في المقابل، فإنه من المعروف أن باسكال فد مكّن من تصميم برامج شهيرة مثل تخ و جزء من أوائل أنظمة التشغيل الخاصة بـماكينتوش. و قد تم اقتباس هذه اللغة في لغات أخرى مثل أدا، مودولا-2 (ثم مودولا-3)، أوبيرون.
محتويات |
[عدل] التقديم و التاريخ
اختُرِعت لغة باسكال (التي اتخذت اسمها من عالم الرياضيات الفرنسي (بليز باسكال) عن طريق نيكولاس ويرذ خلال السبعينيات من القرن العشرين. و قد تم تصميمها لتفيد في تعليم البرمجة بطريقة سهلة و لكن صحيحة، في محاولة لمجابهة تعقيدات ألغول 68. و هذه اللغة من بين اللغات التي ساعدت على تعليم البرمجة المنظمة. و باعتبار أنه من غير المنصوح به استعمال الـ goto أو القفز داخل البرنامج فإن باسكال يعتمد على الشروط (if, case...) و التكرارات (while, for, repeat...) و التي تمتلك كل واحدة منها مدخلا و مخرجا حتى يتم تسهيل التحكم، مما يؤدي إلى برنامج أكثر سرعة و تنظيما.
و تعد هذه اللغة كذلك صارمة في ما يخص تعريف المتغيرات، بمعنى أن كل متغير يجب أن يعرف بنزع عند التجميع. و في المقابل فإن عدم تأقلمه لتمكين التنقل من النوع حرف إلى النوع سلسلة حروف يعد من نقاط ضعفه.
و قد تمكنت لغة باسكال من التغليل بشكل كبير في الميدان التعليمي و مجال الأبحاث (الجامعات)، و بصفة أقل في المبدان الصناعي.
و قد تم نشر ملفات المجمع P4 المصدرية في الجامعات، بسعر مخفض جدا. و هذا المجمع ينشئ الـ P-Code، و هو كود لجهاز افتراضي. و لذلك يمكن القول أن البرامج "الباسكالية" كانت سهلة النقل على الأجهزة.
و كان لمجمع UCSD Pascal (UCSD = University of California at San Diego)، نجاح كبير خاصة على الأجهزة من نوع Apple II و التي كانت شديدة الإنتشار.
و لكن "التوربو" كان من عمل شركة بورلاند الحديثة، و التي أنشأت سنة 1983 و التي قامت بتسويق المجمع توربو باسكال بسعر غاية في التخفيض (49 $ حينها مقابل 500 $ سعر مجمع باسكال من شركة مايكروسوفت و الذي لم يكن يمتلك محررا مدمجا حتى).
[عدل] التوربو باسكال
قام بكتابة توربو باسكال أنديرس هيلزبيرغ (و قد كان اسمه قبل TP، كومباس باسكال ثم بولي باسكال). و قد كان ينشئ لغة الآلة ((x86 تحت DOS) و بسرعة نظرا لخفته (12 ك.ب.) و اعتماده شبه التام على الرام و لم يعد ينشئ بالتالي الـ P-Code. و قد كان مرفقا مع بيئة متكاملة (محرر نصوص و مساعدة عن بعد). و ما فتئ الباسكال يشهد التحسين تلو الآخر ففي عام 1987 ظهرت النسخة 4 التي احتوت على بيئة برمجة مدمجة متكاملة و في عام 1989 ظهرت النسخة 5.5 التي امتازت بدمجها لمفهوم الشيء (Object)، و في عام 1990، مكنت النسخة 6 من برمجة نوافذ (تحت صندوق الأوامر DOS). ثم في عام 1993، ظهرت آخر نسخة، و هي النسخة السابعة لنظام تشغيل دوس و لنظام ويندوز. و قد أصدرت شركة بورلاند سنة 1995 لغة دلفي للتأقلم مع البرمجة المرئية التي أطلقتها مايكروسوفت مع فيجوال ستوديو و كان الدلفي مجمعا حقيقيا ينشئ لغة الآلة. و في سنة 2001 أطلقت شركة بورلاند كيليكس، و هو المرادف لدلفي الخاص بمنظومة لينوكس.
[عدل] فري باسكال
بعد توقف تيربو باسكال عن الإنتاج والإنتقال إلى الدلفي قام فريق فري باسكال بإنتاج بديل لتيربو بساكال مجاني مفتوح المصدر منافس للغة السي++ وهو متوافق مع لغة دلفي و يوجد في عدد كبير من المنصات مثل لينكس، وندوز، ماكنتوش، وآرم، وغيرها الكثير. وقد وصل إلى رقم الإصدارة 2. وتوجد له بيئة متكاملة توجد في عدد من المنصات تسمى لازاراس وهي مصممة بواسطة فري باسكال نفسه، وهي مشابهة لبيئة تطوير دلفي 7 إلا أنها مازالت في حالة التطوير ولم تصل بعد إلى نسخة رقم 1. آخر نسخة رسمية من لازاراس هي: 0.9.28 . ويوجد عدد كبير من البرامج تم تطويرها باستخدام لازاراس وفري باسكال حتى قبل صدور النسخة رقم 1 من لازاراس.
[عدل] أمثلة
- برنامج أهلا بالعالم التقليدي:
Program HelloWorld(output); begin writeLn('Hello, World!') end.
- برنامج جدول الضرب :
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.
- برنامج المضروب:
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.
|
|||||