logo

logo

logo

logo

logo

لغات البرمجة

لغات برمجه

Programming language - Langage de programmation

لغات البرمجة

 

لغة البرمجة programming language هي لغة مؤلفة من مجموعة من المحارف والقواعد الناظمة لها في رموز وكلمات وتعليمات للتعبير عن الخوارزمية بهدف تنفيذها على الحاسوب. تتضمن هذه القواعد آليات التصريح عن المتحولات variables في الأنماط المختلفة مثل: نمط الأعداد الصحيحة integers - نمط الأعداد الحقيقة أو الكسرية real - المحارف characters وسلاسل المحارف strings - الجداول arrays والمصفوفات matrices - التسجيلات records - الملفات files - المؤشرات pointers، وأوامر التحكم التي تسمح بمعالجة هذه المتحولات مثل: تعليمة الإسناد (=,=:) والتعليمات الشرطية if then else, switch, case, go to، والتعليمات الحلقية while, do, until, for وتعليمات القراءة والكتابة من/على الشاشة أو من/على الملفات read, write, scanf, printf, input وتعليمات الحجز في الذاكرة new, malloc, free، والعمليات الأساسية مثل: العمليات الحسابية (+, -, ×, /,<<, >> ,div, mod ) والبوليانية (=>, =<>,< ,> ,=<) والمحرفية chr, ascii, ord.

لمحة تاريخية

ظهر في النصف الثاني من القرن العشرين العديد من لغات البرمجة. في البداية كان على المبرمجين كتابة برامجهم بلغة الآلة machine language، وهي لغة مرمّزة بالبتات الإثنانية binary (0, 1) يمكن للحاسوب فهمها وبرمجتها من دون اللجوء إلى أي عملية تحويل أو تصريف compilation أو تفسير interpretation. تمثّل البتات الإثنانية فيها رموز العمليات ومواقع الذاكرة وقيم المتحولات، ولكن من العسير جداً كتابة البرامج فيها. ظهر بعد ذلك لغات التجميع assembly languages التي سمحت للمبرمج بالتعبير عن العمليات برموز محرفية (مثل: ADD للتعبير عن الجمع، وSUB للتعبير عن الطرح). على الرغم من أن البرمجة بلغات التجميع أبسط بكثير من لغة الآلة إلاّ أنها بقيت بعيدة عن اللغات الطبيعية التي يسهل على الإنسان التعامل معها على نحوٍ أفضل، كما أن كل لغة تجميع ترتبط ارتباطاً وثيقاً بنوع المعالج الصغري microprocessor الذي يميز العتاد المادي لأي حاسوب. وهكذا ظهرت لغات البرمجة عالية المستوى (وتُسمى أيضاً لغات الجيل الثالث) أقرب إلى اللغات الطبيعية ومستقلة عن العتاد المادي للحاسوب. كانت أولى هذه اللغات هي لغة FORTRAN (FORmula TRANslation) التي ظهرت في عام 1956 وكانت موجهة نحو البرمجة العلمية والرياضية، ومازال العديد من المكتبات البرمجية الرياضية مكتوباً بها حتى اليوم، لكنها كانت صعبة الاستخدام في المجالات الأخرى كالبرمجة الإدارية. ثم ظهرت لغة (COBOL) COmmon Business-Oriented Language في عام 1960 وكانت كلماتها وقواعدها قريبة من اللغة الإنكليزية ومناسبة جداً للتطبيقات الإدارية، وقد استخدمت استخداماً واسعاً ومُثّل التاريخ فيها بخانتين فقط. وكان ذلك من أهم ما سبب بما سُمي بمشكلة العام 2000. ظهرت بعد ذلك لغة BASIC (Beginner’s All-purpose Symbolic Instruction Code) وانتشرت انتشاراً واسعاً في المدارس والأعمال والمنازل (مع انتشار الحواسيب الشخصية) بسبب بساطتها الشديدة وسهولة تعلّمها. وظهرت في فترة السبعينيات لغة C الشهيرة ذات المرونة الكبيرة التي تتركز تطبيقاتها في برمجة نظم التشغيل operating systems والمصرّفات compilers وبرمجيات التحكم بالمنظومات الصناعية، بسبب كونها لغة عالية المستوى تتضمن فاعلية لغة التجميع. كما ظهرت أيضاً لغة PASCAL التي اشتهرت بكونها لغة تعليمية مهيكلة دقيقة التنميط.

تميزت حقبة الثمانينيات بظهور لغات البرمجة الغرضية التوجهobject-oriented programming languages واللغات الكتلية modular languages التي عكست تطور مفاهيم هندسة البرمجيات software engineering. كانت البداية الفعلية للغات البرمجة  الغرضية التوجه مع لغة  80 smalltalk، ثم ترسخت أكثر مع لغة ADA التي طورتها وزارة الدفاع الأمريكية، ثم حققت انتشارها الواسع مع لغة ++C التي دعمت لغة C الواسعة الانتشار أصلاً بمفاهيم البرمجة غرضية التوجه. أمّا في اللغات الكتلية فإن خير من يمثّلها هي لغة MODULA-2 التي هي بمنزلة تطوير للغة Pascal المهيكلة، كما يمكن عدّ لغة ADA من أهم هذه اللغات.

شهدت حقبة التسعينيات تطورين بارزين هما: الوسائط المتعددة والفائقة multimedia and hypermedia وشبكة الإنترنت العالمية وخدمتها الأساسية الشبكة العنكبوتية العالمية <world wide web أو «الوب» اختصاراً، وقد انعكس ذلك مباشرةً على تطوّر لغات البرمجة. لذلك ظهرت بدءاً من النصف الأول من هذه الحقبة لغات البرمجة المرئية visual programming languages، وهي لغات منتشرة أصلاً لكنها طُعّمت بمزايا التعامل مع الواجهات الرسومية والاستجابة إلى الأحداث التي يقوم بها المستخدم ولذلك يمكن تسميتها باللغات الموجّهة بالأحداث event-driven languages مثل: لغة visual basic - لغة visual C - لغة delphi - لغة visual  C++ .

ولعلّ أهم ما يميز هذه الحقبة ظهور لغة Java [ر] التي تحوي دعماً خاصاً لكي تنفذ من خلال الوب. وهي لغة كائنية المنحى تشبه كثيراً لغة ++C وإن كانت تختلف عنها بأمور جوهرية أهمها عدم تقبل تعليمات لغة  C. يولّد تصريف لغة جافا برامج تنفيذية صغيرة يسهل تحميلها عبر الإنترنت. كما ظهر أيضاً العديد من لغات البرمجة المرتبطة ارتباطاً وثيقاً بالإنترنت: مثل اللغات الخطاطية Javascript, JScript, VBScript المستخدمة في إعطاء صفحات الوب إمكانات ديناميكية وتخاطبية مع المستخدم من خلال دمجها مع لغات التأشير[ر] markup languages المستخدمة أصلاً لتصميم هذه الصفحات (كلغتي HTML EXML) - ولغات برمجة أخرى تفيد في الربط بين صفحات الوب وقواعد المعطيات databases الموجودة على المخدّمات servers مثل لغة PERL ولغة ASP.

تنبغي الإشارة أيضاً إلى أنه قد ظهر أيضاً في النصف الثاني من القرن العشرين العديد من اللغات العالية المستوى الخاصة التي تملك ميزات مناسبة لتطبيقات محدّدة. هناك من الأمثلة على هذه اللغات: لغة APT (Automatically Programmed Tools) المستخدمة في التحكم الرقمي بالآلات الصناعية، ولغة GPSS (General Purpose Simulation System) المستخدمة في بناء نماذج المحاكاة، ولغة LISP (LISt Processing) المناسبة لمعالجة الرموز والقوائم والمستخدمة في تطبيقات الذكاء الصنعي[ر] artificial intelligence، ولغة PROLOG (PROgrammation LOGique) المحاكية للجمل المنطقية من الدرجة الأولى والمستخدمة في تطبيقات معالجة اللغات الطبيعية natural language processing.

ظهرت أيضاً ما سُميت لغات بالجيل الرابع  4 th generation languages، وهي لغات أكثر قرباً إلى اللغات الطبيعية وموجهة نحو الاستفسار والبحث في قواعد المعطيات مثل لغة الطلبات المهيكلة structured query language (SQL) وFOCUS  و dBase.

مكونات لغة البرمجة:

على الرغم من اختلاف لغات البرمجة فيما بينها إلا أنها جميعاً تعمل وفق مبدأ رئيسي واحد، فالبرنامج الحاسوبي المكتوب بلغة برمجة ما، يتألف من سلسلة من الأوامر والتعليمات التي يجب على الآلة أن تنفذها. تنفذ الآلة المعلومات بترتيب قراءتها لها من الملف (أي من الأعلى إلى الأسفل) إلى أن تصل إلى تعليمات تفرّع branching instructions توجهها نحو تنفيذ مجموعة تعليمات من دون مجموعة أخرى. ويستمر تنفيذ التعليمات بهذا الشكل حتى بلوغ نهاية البرنامج.

1ـ مفهوم المتحول variable:

في معظم لغات البرمجة تُستخدم المتحولات. يعبّر المتحول عن مكان تخزين المعطيات في الذاكرة، ويقوم المبرمج بإعطائه اسماً، ويمكنه أن يضع فيه المحتوى المناسب. على سبيل المثال يمكن أن يُسمى متحول ما بـ xy ويوضع فيه العدد 8.

2ـ نمط المعطيات data type:

في بعض لغات البرمجة، يمكن أن يدل متحول ما على أي نمط من المعطيات (أي يمكن أن يخزن فيه عدد صحيح أو محرف)، تُسمى مثل هذه اللغات لغات غير منَمَّطة non typed languages. توجد لغات أكثر تطوراً مثل (C أو جافا) وهي لغات منمّطةtyped languages، أي إن لكل متحول فيها نمط خاص للمعطيات التي يمكن أن يحتويها، وفي لحظة التصريح عن تسمية متحول ما، يجب أن يُبيَّن نمط المعطيات الذي يجب أن يحتويه هذا المتحول. ويرتبط نمط المتحول بعدد الثمانيّات التي يجب أن يحجزها المترجم للمتحول -وهو عدد الثمانيّات التي ستُرَمَّز المعطيات ضمنها- وبطريقة ترميزها.

3ـ بنى المعطيات data structures:

توفّر معظم لغات البرمجة طرائق لتجميع المعطيات في بنى أكثر تعقيداً، فيجري تعريف نمط جديد غير موجود في أصل اللغة باستخدام مفاهيم المصفوفات، والقوائم، والمكدسات والملفات، ويُعطى اسماً جديداً.

كما تسمح اللغات غرضية التوجه object oriented languages  بتعريف بنى معطيات جديدة تسمى أغراضاً objects لها بنية داخلية خاصة وسلوك خاص.

4ـ النحو syntax:

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

وتختلف اللغات بعضها عن بعض بطرق تجميع هذه العبارات الأساسية، وهكذا يمكن كتابة برامج تشمل أنواعاً مختلفة من المدخلات، كما تستطيع أن تنفذ عدة أشكال من تدفق التحكم (التفرّع branching، الحلقات loops، الرجوع إلى الوراء backtracking).

تصنيف لغات البرمجة

يمكن تصنيف لغات البرمجة وفق عدة معايير مختلفة مثل: طريقة التصميم والبرمجة - الحقبة الزمنية - سهولة التعلّم - طبيعة التطبيقات المناسبة - قدرتها التعبيرية - وغيرها. قد يكون من الأنسب تصنيف هذه اللغات بحسب المعيار الأول على النحو الآتي:

آـ اللغات الإجرائية

تتميز هذه اللغات بطريقة التصميم البرمجي من الأعلى إلى الأسفل حيث تجري تجزئة المسألة المطلوبة إلى مسائل جزئية، ثم تجزئة المسائل الجزئية إلى مسائل أصغر، وهكذا حتى الوصول إلى مسائل يمكن برمجتها مباشرةً بوساطة إجراءات procedures أو توابع functions. ويكون إجراء المسألة الجزئية في مستوى ما تجميعاً لإجراءات المسائل التي يتألف منها، ويصبح بالتالي البرنامج تجميعاً لكل المسائل الجزئية إضافةً إلى سيناريو استدعاء هذه الإجراءات عند الحاجة. تتضمّن معظم هذه اللغات أنماط المعطيات الأساسية وأوامر التحكم الأساسية. ويوضح الجدول (1) المعلومات الأساسية عن أهمّ لغات البرمجة الإجرائية.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

ABC

Unix, Macintosh, MS-DOS

مفسّرة

مفسّرات اللغات الطبيعية وقواعد البيانات

Geurts & Meertens, 1975-82

Alef

Plan 9

مصرّفة

تطوير تطبيقات الشبكة

P. Winterbottom et al. Bell Labs (Lucent), 1995

Algol

DOS,

Mainframe

مصرّفة

علمية وصناعية عمومية

J. Backus and P. Naur, 1958-60.

Basic

DOS

مفسّرة

عمومية وتعليمية

John Kemeny & Thomas Kurtz, Dartmouth, 1963-64

BCPL

Unix, Amiga, MS-DOS

مصرّفة إلى رماز خاص

تطوير التطبيقات الصغيرة وخصوصاً لنظم التشغيل

Martin Richards, Cambridge University, 1966-67

Bliss

PDP, DECsystem, VAX

مفسّرة

تطوير تطبيقات لنظم التشغيل

Wulf, Russell et al. DEC, 1970

C

Unix, PC, Macintosh, mainframe

مصرّفة

عمومية وجيدة في نظم التشغيل والمترجمات

Ritchie & Thompson, 1972-73; Kernighan & Ritchie, 1978

CLU

Unix

مصرّفة

عمومية وجيدة خصوصاً في تصميم لغات البرمجة

B. Liskov et al.

1974-77

CMS-2

معظم البيئات

مصرّفة

تطبيقات الزمن الحقيقي المضمّنة للبحرية الأمريكية

Rand Corporation, US Navy, 1974

Cobol

Unix, DOS, Windows

مصرّفة

عمومية وجيدة في الأتمتة الإدارية وفي مجال الأعمال كالمصارف والمصانع

US DOD GPO, 1960; CODASYL Committee, 1960.

Coral 66

VAX, VMS

مصرّفة

تطبيقات الزمن الحقيقي

Royal Signals & Radar Establishment, Malvern UK, 1964-66

cT

Unix,

Windows, Macintosh

مصرّفة

تطبيقات الإحياء animation وبناء الواجهات التخاطبية متعددة الوسائط multimedia

Andersen, Sherwood et al. Carnegie-Mellon, 1990-94

Fortran,

Unix, Dos, VAX

مصرّفة

التطبيقات العلمية والرياضية وحسابات الفاصلة العائمة

John Backus, IBM, 1954-57

Jovial

DOS,

Mainframe

مصرّفة

تطوير التطبيقات الكبيرة في هندسة البرمجيات ونظم الزمن الحقيقي

Jules Schwartz et al. SDC, 1959-60

ICI

Unix, DOS, Windows, Macintosh

مفسّرة

تطوير التطبيقات

Tim Long, 1992

 

Icon

UNIX, DOS, OS/2, VMS, Windows, Macintosh

مفسّرة

معالجة المعطيات وسلاسل المحارف

R.E. Griswold, 1977

InterCall

DOS, Unix;

Mainframe

مصرّفة

عمومية

D.R. Woods and J.M. Lyons, 1972

Limbo

Inferno,

Unix, Windows, Plan9

مصرّفة إلى رماز ثماني

تطوير التطبيقات والنظم المحمولة embedded systems

Doward, Winterbottom, & Pike, Lucent Technologies, 1996

Modula-2

Unix, PC, VMS

مصرّفة

عمومية وجيدة في تعلّم البرمجة وصيانة تطبيقات هندسة البرمجيات

Niklaus Wirth, 1980

Pascal

Unix, PC, Macintosh

مصرّفة

عمومية وجيدة خصوصاً في تعلّم البرمجة

Niklaus Wirth, 1968-71

PL/1,

PLC

mainframe, WindowsNT, OS/2, Unix

مصرّفة

عمومية

George Radin, IBM, 1964

SETL

DOS, Unix, Macintosh

مصرّفة

تطبيقات المجموعات

Jacob T. Schwartz, 1969; Courant Institute, 1970

Terse

DOS, Windows

مصرّفة

تطبيقات المعالجة الصغرية Intel x86

Jim Neil, 1987

Turing

Windows, Macintosh, Unix

مصرّفة

تعليمية

R.C. Holt et al. Univ. of Toronto, 1987

الجدول (1): أهمّ لغات البرمجة الإجرائية

ب ـ لغات البرمجة الرياضية ولغات المحاكاة

هي لغات مختصة بالحسابات العلمية والرياضية والهندسية وطرق نمذجة ومحاكاة النظم، ولذلك فهي تحوي غالباً مجموعة صغيرة نسبياً من ميزات لغات البرمجة التقليدية، ومجموعة كبيرة من التعليمات والأدوات الرياضية اللازمة لزيادة فاعلية هذه التطبيقات. يحوي الجدول (2) المعلومات الأساسية عن أهمّ لغات البرمجة الرياضية ولغات المحاكاة.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

APL

معظم البيئات

مفسّرة

الحسابات الرياضية ومعالجة المصفوفات

Iverson et al. IBM, 1960s

CSP

DOS

مفسّرة

وصف ومحاكاة الحسابات التفرعية

C.A.R. Hoare, 1978

Formac

معظم البيئات

مصرّفة

الحسابات العلمية والهندسية

Jean Sammet et al. IBM, 1964.

GPSS

Mainframe

مصرّفة

نمذجة النظم ومحاكاة الأحداث المتقطعة ونمذجة إجراءات الواقع الحقيقي

G. Gordon, IBM, 1961

Magma

Unix, PC

مفسّرة

برمجة رياضية عالية المستوى

J. Cannon, et al. 1993

Mathematica

Windows, Macintosh, Unix

مفسّرة

التطبيقات الرياضية الرمزية والبيانية الأكاديمية والصناعية

Stephen Wolfram, 1987

Reduce

معظم البيئات

مفسّرة

الجبر والرياضيات الرموزية

Anthony Hearn, RAND Corp, 1963

S

Unix, PC

مفسّرة

الإحصاء والنمذجة الرقمية وتحليل المعطيات والمحاكاة

R.A. Becker et al. 1977-84

SLAM

Unix, mainframe, Windows

مفسّرة

نمذجة النظم المتقطعة ومحاكاة جدولة الخدمات والتصنيع واللوجستية العسكرية وبنيان الحواسيب والأرتال.

A.A.B. Pritsker et al. 1976-77

SmiScript

معظم البيئات

مفسّرة

نمذجة الأحداث المتقطعة والمستمرة

H. Markowitz et al. Rand Corporation, 1962

VHDL

Unix

مفسّرة

الدارات الرقمية المتكاملة

M.R. Shahdad et al. 1985; IEEE Standard 1076, 1987

Yorick

Unix, Linux, Macintosh,, Windows

مفسّرة

تحليل المعطيات والبيانيات

Lawrence Livermore National Laboratory, 1994

الجدول (2): أهمّ لغات البرمجة الرياضية ولغات المحاكاة

ج ـ لغات البرمجة غرضية التوجه

تتميز هذه اللغات بطريقة التصميم البرمجي من الأسفل إلى الأعلى، حيث يجري أولاً تعريف الفئات classes التي تُستخدم في توليد الأغراض objects، ثم يجري بناء البرنامج كسيناريو لتبادل الأغراض فيما بينها الرسائل التي تؤدي إلى تحريض الطرائق methods التي تنفّذها، بغض النظر عن كيفية بنائها في الأغراض. تتضمن هذه اللغات المفاهيم التالية: مبدأ الكبسلة Encapsulation أو تجميع المعطيات مع الطرق التي تعمل عليها انتساخ instantiation الأغراض عن الفئات - وراثة inheritance الخصائص والطرق - مبدأ إعادة الاستخدام reusability - إخفاء المعطيات data hiding - مفاهيم التحميل الزائد وإعادة التعريف والتجريد، ويحوي الجدول (3) المعلومات الأساسية عن أهمّ اللغات الكائنية المنحى.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Ada

Unix, Windows, DOS

مصرّفة

هندسة البرمجيات والبرامج الضخمة

Jean Ichibah et al. 1980-1983

BETA

معظم البيئات

مصرّفة

تطوير التطبيقات البرمجية

Madsen et al. Aarhus Univesity, 1983

C++

PC,

Unix

مصرّفة

علمية وصناعية عمومية

Bjarne Stoustrup, AT&T Bell Labs, 1982-85

Cecil

Unix, Linux

مصرّفة

تطوير التطبيقات البرمجية الكبيرة

Craig Chambers, 1992

Claire

PC,

Unix, Macintosh

مصرّفة

بحوث اللغات والبرمجة الخاصة

F. Laburthe, Y. Casuau, ENS Paris, 1995

Dyaln

Unix, Macintosh, Windows

مفسّرة

تطوير التطبيقات وبرمجة النظم

Apple Computer, 1992

Dyance

معظم البيئات

مصرّفة

تطوير التطبيقات العمومية

B. McBride, Algorithms Corporation, 1993-96

Eiffel

معظم البيئات

مصرّفة إلى رماز ثماني

عمومية

Bertrand Meyers, 1986-92

Java

معظم البيئات

مصرّفة إلى رماز ثماني

عمومية

Gosling et al. Sun Microsystems, 1994-95

Leda

Unix, Windows 95/NT

مصرّفة

عمومية

T.A. Budd, Oregon State University, 1988

Modula-3

Unix, Linux, WindowsNT

مصرّفة

هندسة البرمجيات وتعليم علوم المعلوماتية

Luca Cardelli et al. Olivetti and DEC, 1988

Oberon

Unix, Linux, PC, Macintosh

مصرّفة

تعليم علوم المعلوماتية

Wirth and Gutknecht, ETH Zurich, 1985-88

Objective-C

NeXT, OpenStep

 

مصرّفة

عمومية

Brad J. Cox, 1984-85

Obliq

معظم البيئات

مفسّرة

الحسابات متعدّدة السريد

Luca Cardelli, DEC, 1993

Pike

Windows, Unix

مفسّرة

تطوير تطبيقات الشبكة

Fredrik Hübinette1996

Python

Windows

مفسّرة

عمومية

G. van Rossum, 1991

Ruby

Internet

مفسّرة

تطبيقات الإنترنت

Y. Matsumoto and others, 1993-95

Sather

معظم البيئات

مصرّفة

هندسة البرمجيات

S.M. Omohundro, C-C Lim, et al. UC Berkeley, 1990

Self

Unix,

Linux, Macintosh

مصرّفة

البيانيات والتشبيك وخدمات الدخل/خرج

David Ungar & Randall Smith, 1986

Simula67

معظم البيئات

مصرّفة

محاكاة الأحداث المتقطعة

Ole Dahl and Kristen Nygaard, NCC Olso, 1964-67

Sina

معظم البيئات

مفسّرة

التطبيقات الأكاديمية

A. Tripathi et al. 1989

Smalltalk

Unix

مصرّفة إلى رماز وسيط

تطوير التطبيقات

Alan Kay and Xerox Software Concepts Group, 1972

Telescript

Macintosh, Windows, Unix

مصرّفة

الواجهات البيانية وتطبيقات تبادل الرسائل ونظم الحوسبة الموزعة

General Magic, Inc, 1995

Theta

معظم البيئات

مصرّفة

هندسة البرمجيات

Barbara Liskov et al. MIT, 1994

UFO

Windows, Macintosh, Unix

مفسّرة

البرمجة التفرعية الضمنية

J. Sargeant et al. 1996

الجدول (3): أهمّ لغات البرمجة الكائنية المنحى

د ـ اللغات الوظيفية

هي لغات برمجة تُستخدم للتعبير عن البرامج بوصفها مجموعة متتالية من الوظائف واستدعاءات الوظائف. وتعتمد عموماً التصميم الوظيفي الذي يوصّف العلاقات بين الأجزاء العاملة وتفاصيل مكوناتها المنطقية وطريقة عملها بعضها مع بعض. يحوي الجدول (4) المعلومات الأساسية عن أهمّ اللغات الوظيفية.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Concurrent Clean

معظم البيئات

مصرّفة

تطوير التطبيقات التفرعية والموزعة

Nِcker, Plasmeijer, Smetsers et al. 1984-91

Curry

معظم البيئات

مفسّرة

تعليم المنطق والبرمجة الوظيفية واختبار التضييق والتجميع وعدم الحتمية

Michael Hanus,RWTH Aachen, Germany, 1997

Erlang

Windows, Unix

مصرّفة

تطوير التطبيقات البرمجية وخصوصاً نظم الزمن الحقيقي الضخمة

J. Armstrong and R. Virding, Ellemtel System Laboratories, 1990

Escher

معظم البيئات

مصرّفة

البحث العلمي والتعليم الأكاديمي

J.W. Lloyd, University of Bristol, 1995

FP

Unix

مفسّرة

البحث حول نموذج فون نيومان

John Backus, 1977

Haskell

معظم البيئات

مفسّرة

عمومية

Hughes, Wadler, Peterson et al. 1990

Hope

MS-DOS, Unix, Macintosh

مصرّفة

نمذجة النظم ومحاكاة الأحداث المتقطعة ونمذجة إجراءات الواقع الحقيقي

Burstall 1978, Perry, Kewley et al. 1985

Lisp

معظم البيئات

مفسّرة

الذكاء الصنعي

McCarthy et al. 1956-1961

Logo

Windows, Macintosh, Unix

مفسّرة

تعليم البرمجة وحل المسائل للأطفال

Papert et al. MIT, 1967

Miranda

Unix, Linux

مفسّرة

تطوير التطبيقات وتعليم البمجة الوظيفية

David Turner, University of Kent, 1985

ML

Unix, PC

مفسّرة

التحليل الصوري وبرهنة الصحة

Standard ML, Milner & Tofte, 1990

NAIL

معظم البيئات

مفسّرة

تطوير التطبيقات

M. A. Jenkins et al. 1981-86

REBOL

Internet

مفسّرة

تطوير التطبيقات وخدمات الشبكة

C. Sassenrath, 1997

SISAL

Unix, PC, Macintosh,, Cray

مفسّرة

المعالجة التفرعية وتحسين أداء المترجمات وتعليم البرمجة التفرعية

John Feo et al. Lawrence Livermore National Laboratory, 1990

الجدول (4): أهمّ اللغات الوظيفية

هـ ـ لغات البرمجة المتعددة والبرمجة التفرعية

أدى تطوّر عتاد الحواسيب، باتجاه تعدّد المعالجات وضرورة توزع المعطيات والعمليات عليها بين هذه المعالجات (وهذا ما يُسمى فعلياً بالمعالجة التفرعية parallel processing)، إلى ظهور لغات برمجة تسمح بهذا التوزيع على مستوى البرمجة وليس على مستوى العتاد بسبب صعوبة التعامل المباشر معه. ترتبط هذه اللغات ارتباطاً وثيقاً بنظم التشغيل التي تستطيع التعامل مع العتاد التفرعي. ويحتوي الجدول (5) المعلومات الأساسية عن أهمّ لغات البرمجة المتعدّدة والبرمجة التفرعية.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

C*

Connection Machine CM2 & CM5

مصرّفة

تطوير التطبيقات على الحواسيب التفرعية

Thinking Machines Corp, 1987

Cilk

Unix, Linux, Windows NT

مصرّفة

بحوث البرمجة التفرعية والمترجمات التفرعية

Joerg, Leisers, et al. MIT, 1995

Concurrent Pascal

mini-computer, mainframe

مصرّفة

نظم التشغيل

P. Brinch Hansen, 1974

Esterel

Unix

مصرّفة

نمذجة وتوصيف النظم التفاعلية المتزامنة ودراسة الحسابات التفرعية تنفيذ العتاد الرقمي

G. Berry, L. Cosserat, et al. CMA France, 1983

Lucid

Unix

مفسّرة

تجريب نماذج مختلفة عن نموذج فون نيومان

Ashcroft and Wadge, 1976-77

NESL

Unix

مصرّفة

التطبيقات المحمولة على عتاد حاسوبي تفرعي مختلف

Guy Blelloch, Carnegie-Mellon, 1992-93

occam

معظم البيئات

مصرّفة

البرمجة التفرعية

David May et al 1982, 1987

Ocra

Windows, Macintosh, Unix

مصرّفة

التطبيقات على عتاد متنوع للبرمجة  المتعدّدة

Bal, Kaashoek, Tannenbaum et al. 1985-90

Oz

Windows, Unix

مصرّفة

بحوث تصميم اللغات والذكاء الصنعي والنظم المتزاحمة

G. Smolka with Schulte, Henz, Muller, Wurtz et al. DFKI, 1994-97

Pict

Unix

مصرّفة

الحسابات التفرعية حسب نموذج PI

B.C. Pierce, D.N. Turner, 1993

ZPL

Windows, Unix

مصرّفة

الحسابات العلمية

Snyder et al. University of Washington, 1993

الجدول (5): أهمّ لغات البرمجة المتعدّدة والبرمجة التفرعية

وـ اللغات المنطقية

هي لغات مبنية على طرق الاستنباط المعروفة في المنطق وتقنيات برهنة حلول المسائل، وغالباً ما تنطلق من مجموعة حقائق وآلية استنباط للوصول إلى الأهداف المحدّدة مسبقاً. تنتشر هذه اللغات في تطبيقات الذكاء الصنعي والأنظمة الخبيرة. يحوي الجدول (6) المعلومات الأساسية عن أهمّ اللغات المنطقية.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Goedel

Unix

مفسّرة

البحث العلمي وتعليم البرمجة المنطقية وتحويل وتوليد البرامج

P.M. Hill & J.W. Lloyd, 1994

LIFE

Unix

مفسّرة

وصف ومحاكاة الحسابات التفرعية

Hassan Ait-Kaci, MCC Texas, 1993

Mercury

Unix, Windows, Linux

مصرّفة إلى رماز C

البرمجة المنطقية

University of Melbourne, 1993

OPS5

Unix

مفسّرة

بحوث الذكاء الصنعي والنظم الخبيرة

Charles Forgy et al. 1977

Prolog

معظم البيئات الحديثة

مفسّرة

تطبيقات الذكاء الصنعي والنظم الخبيرة

D.H. Warren 1977, R. Kowalski 1979,
Clocksin & Mellish 1980-84

 الجدول (6): أهمّ لغات البرمجة المنطقية

ز ـ اللغات الخطاطية

هي لغات مبسّطة ومختصرة، معظمها مفسّر، تقوم عموماً بأعمال خاصة صغيرة ومحدودة، وقد تكون مرتبطة بتطبيقات معينة أو تُستخدم لزيادة إمكانات بعض اللغات التقليدية. تنتشر عموماً في نظم التشغيل والشبكات (وخصوصاً الإنترنت) وقواعد البيانات. يحوي الجدول (7) المعلومات الأساسية عن أهمّ لغات معالجة النصوص. 

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Applescript

Macintosh

مصرّفة إلى رماز وسيط جاهز للتنفيذ

التحكم بالبرامج وعمليات الشبكة وواجهات المستخدم

Apple Computer, 1993

Euphoria

DOS, Windows, OS/2

مفسّرة

تطوير التطبيقات العامة وبرمجة الألعاب

R. Craig, Rapid Deployment Software, 1993

CFML

Internet

مفسّرة

تصميم الصفحات الديناميكية على الوب وربطها مع قواعد المعطيات

J.J. Allaire, 1995

Csh

Unix

مفسّرة

لغة أوامر تخاطبية للتحكم بإدارة نظام التشغيل

-

HyperTalk

Macintosh

مفسّرة

تجميع المعلومات تخاطبياً وديناميكياً

Atkinson and Winkler, Apple Computer, 1987

JavaScript

Internet

مفسّرة

تصميم الصفحات الديناميكية على الوب وربطها مع قواعد المعطيات

Netscape Communications Corp, 1994

Lua

Unix

مفسّرة

التضمين في تطبيقات أخرى

W. Celes, R. Ierusalimschy, L.H. de Figueiredo, 1994

Mawl

Windows, Macintosh, Unix

مصرّفة إلى رماز C++

الخدمات التفاعلية المباشرة

D.A. Ladd, J.C. Ramming, T. Ball, 1995

Perl

Unix, VMS, Windows

مفسّرة

معالجة المعطيات والتطبيقات السريعة

Larry Wall, 1986

Pilot

IBM

مفسّرة

بناء نصوص نظم التعليم بمعونة الحاسوب

IBM, 1962

PHP

Unix, Linux, Windows

مفسّرة

التطوير السريع على مخدّمات الوب

R. Lerdorf, 1995

Rexx

IBM

مفسّرة

تطوير التطبيقات وتكاملها وتمديدها

M. Cowlishaw, IBM, 1979 - 1985

sh

Unix, Linux

مفسّرة

برمجة أوامر نظم التشغيل

Steve Bourne, 1971

TCL

Unix, Windows, Macintosh

مفسّرة

تطبيقات الواجهات الرسومية العمومية

John Ousterhout et al. UC Berkeley, 1990

 الجدول (7): أهمّ اللغات الخطاطية

ح ـ اللغات الماكروية (أو اللغات المتضمنة في التطبيقات)

أدّى تطور التطبيقات الحاسوبية، من مجرد برامج صغيرة تقوم بأعمال محدودة إلى برمجيات محزومة packages، إلى ظهور لغات برمجة تعمل حصراً مع هذه الحزم للقيام بأعمال إضافية لا تستطيع لغات البرمجة التقليدية أن توفرها. ويوضح الجدول (8) بعض المعلومات الإضافية عن أهمّ اللغات الماكروية.

اسم اللغة

بيئة العمل

الشرح

المصمّم

AutoLisp

التطبيق AutoCAD

إحدى لهجات لغة Lisp تقدم إمكانات إضافية للتعامل مع الكائنات الرسومية في ملفات التطبيق AutoCAD وللتخاطب مع المستخدم من خلال واجهته.

Autodesk, late 1980s

CorelScript

تطبيقات Corel

تشبه لغة Visual Basic وتضيف ماكروات إلى تطبيقات Corel.

Corel Corporation, 1994

Elisp

محرّر النصوص

GNU Emacs

إحدى لهجات لغة Lisp تقدم إمكانات إضافية للتعامل مع سلاسل المحارف ومعالجة النصوص في Emacs في بيئة نظام Unix.

Richard Stallman, GNU Project, 1985

Lingo

تطبيقات MacroMedia

لغة إجرائية موجهة بالأحداث تحوي بعض ميزات البرمجة كائنية المنحى، وتشبه قواعدها اللغة الإنكليزية.

Macromedia Inc 1991-96

LotusScript

البرنامج المكتبي Lotus

إحدى لهجات Basic تحوي بعض ميزات البرمجة كائنية المنحى.

Lotus Development Corp, 1995

PerfectScript

تطبيقات WordPerfect, QuattroPro

إحدى لهجات Basic وتحوي بعض القواعد وأوامر التحكم المستوحاة من لغة C.

Novell Corporation, 1995

TeX

محرّر النصوص TeX

لغة وصفية مفسّرة لتنسيق الوثائق تحوي بعض ميزات اللغات الإجرائية، وتعرّف ماكروات تسمح للمستخدم ببناء وثائق جديدة محسّنة ومخصصة.

Donald Knuth, 1978, 1982

VBScript

صفحات الوب الديناميكية

لغة مفسّرة وإجرائية وهي لغة جزئية من لغة Visual Basic تعمل بأداء أفضل مع متصفحات ومخدّمات Microsoft.

Microsoft Corporation, 1995

WordBasic

محرّر النصوص Word

إحدى لهجات Basic تعرّف ماكروات لتحسين معالجة وثائق المحرّر Word الشهير.

Microsoft Corporation, 1992

الجدول (8): أهمّ اللغات الماكروية

ط ـ لغات معالجة النصوص

هي لغات خاصة بمعالجة وتنسيق النصوص (وسلاسل المحارف)، تعتمد عموماً تقنيات مطابقة النماذج pattern matching والتعابير المنتظمة regular expressions. يحوي الجدول (9) المعلومات الأساسية عن أهمها.

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Awk

Unix

مفسّرة

معالجة سلاسل المحارف

Aho, Kernighan, & Weinberger, 1976-77

Mumps (M)

Unix, VMS, DOS, Windows

مفسّرة

تطوير نظم المعلومات الإدارية التفاعلية

Octo Barnett M.D. et al. Mass. General Hospital, 1969

RGP

IBM

مصرّفة

توليد التقارير في نظم المعلومات الإدارية

IBM, 1965

Snobol

Mainframe

مفسّرة

معالجة ومطابقة سلاسل المحارف

Griswold and Faber, Bell Labs, 1962

Teco

معظم البيئات

مفسّرة

تحرير النصوص

Digital Equipment Corp, 1980

 الجدول (9): أهمّ لغات معالجة النصوص

ي ـ اللغات المبنية على المكدسات

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

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Befunge

PC

مفسّرة

الحسابات على شبكات الإحداثيات

Chris Pressey, 1993

Forth

معظم البيئات

مفسّرة

التطبيقات الصغيرة جداً

Charles H. Moore, 1969-1971

PostScript

معظم البيئات

مفسّرة

المعالجة الطباعية

John Warnock et al. Adobe Systems, 1982

Until

Unix,

MS-DOS

مفسّرة

خدمات نظم التشغيل

N.E. Smith, 1991

الجدول (10): أهمّ اللغات المبنية على المكدسات

ك ـ اللغات المرئية أو البيانية

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

اسم اللغة

بيئة العمل

نوع الترجمة

التطبيقات المناسبة

المصمّمون وتاريخ التصميم الأولي

Forms/3

Unix

مفسّرة

البحث العلمي الأكاديمي

Burnett and Ambler, 1991

Sparcl

Macintosh

مفسّرة

برمجة أكاديمية مساعدة في البرمجة الاستكشافية

L. Spratt, U. of Kansas, 1993

 الجدول (11): أهمّ اللغات البيانية

ل ـ لغات معالجة قواعد البيانات (لغات الجيل الرابع)

توفّر هذه اللغات إمكانات كبيرة لاسترجاع التسجيلات (أو أجزاء منها) المخزنة في قواعد البيانات والتي تحقق شروطاً معينة وإجرائية الحسابات عليها. تُعدُّ لغة SQL من أشهر هذه اللغات التي تقدّم قواعد صورية وتوابع غنية تستطيع توظيف العمليات البوليانية والحسابية والإحصائية وغيرها، بغية الاسترجاع الفعّال للمعلومات. التعليمة الأساسية فيها هي:

Select [Field Fa, Fb, . Fn]

From [Database Da, Db, . Dm]

Where (Fi = SVi )and .and (Fj=SV)j

حيث تقوم هذه التعليمة باختيار مجموعة حقول من تسجيلات موجودة في بعض الجداول المخزنة في قاعدة معطيات أو أكثر وتحقق شروطاً معينة. فمثلاً لإجراء الطلب الآتي: «قائمة بأسماء طالبات الصف الثاني في مدرسة النجاح» تُكتب التعليمة الآتية:

Select St1stName, St2ndName

From Students

Where (School= Success ) and (Sex= Female ) and (Class= 2nd)

تُوجد لغات أخرى من نوع «الطلب باستخدام مثال» (QBE) Query-By-Example تقدّم واجهة فارغة يقوم المستخدم بملئها بالشروط المطلوبة. من أهمّ تطبيقات هذه اللغات محركات البحث search engines عن المعلومات في الإنترنت.

عمّار خيربك، غيداء ربداوي

الموضوعات ذات الصلة:

الإنترنت ـ التأشير (لغات  ـ) ـ جافا (لغة ـ) ـ الذاكرة في الحاسوب ـ الذكاء الصنعي ـ قواعد المعطيات.

مراجع للاستزادة:

ـ أحمد بسيوني، الكمبيوتر البرمجة والأداء (مكتبة ابن سينا، مصر 1997).

ـ شريف الشافعي، المرجع الكامل في البرمجة التفاعلية (دار الكتب العلمية، مصر 1998).

- ROBERT W. SEBESTA, Concepts of Programming Languages, (Addison Wesley; 6 edition 2003).

- BENJAMIN C. PIERCE, Types and Programming Languages (The MIT Press 2002).

- DANIEL P. FRIEDMAN, MITCHELL WAND & CHRISTOPHER T. HAYNES, Essentials of Programming Languages (The MIT Press; 2nd edition 2001).

- KENNETH C. LOUDEN, Programming Languages (Course Technology; 2nd edition 2002).


التصنيف : التقنيات (التكنولوجية)
النوع : تقانة
المجلد: المجلد السابع عشر
رقم الصفحة ضمن المجلد : 58
مشاركة :

اترك تعليقك



آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

عدد الزوار حاليا : 1381
الكل : 31533442
اليوم : 49847

مينوهين (يهودي-)

مينوهين (يهودي ـ) (1916 ـ 1999)   يهودي مينوهين Yehudi Menuhin عازف كمان أمريكي من أصل روسي يهودي، ولد في نيويورك، وتُوفِّي في برلين. بدأ دراسة الكمان في السادسة من عمره، وظهر في سن الثامنة في أول حفل موسيقي له في أوكلاند عام 1924، وعُدَّ طفلاً أعجوبياً.
المزيد »