isbn 0-321-49362-1 الفصل 1 مقدمات. copyright © 2007 addison-wesley. all rights...

31
ISBN 0-321-49362-1 ل ص ف ل ا1 دمات ق م

Upload: mervyn-neal

Post on 01-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

ISBN 0-321-49362-1

1 الفصل

مقدمات

Page 2: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-2

1مواضيع الفصل

أسباب دراسة مفاهيم لغات البرمجة•مجاالت البرمجة•معايير تقييم اللغة•العوامل المؤثرة على تصميم اللغة•فئات اللغة•تصميم لغة المقايضات)المفاضالت(•أساليب التنفيذ •بيئات البرمجة•

Page 3: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-3

أسباب دراسة مفاهيم لغات البرمجة

زيادة القدرة على التعبير عن األفكار•تحسين الخلفية الختيار اللغات المناسبة•زيادة القدرة على تعلم لغات جديدة•فهم أفضل ألهمية تنفيذ•عموما النهوض)التقدم( بالحوسبة•

Page 4: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-4

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

عدد كبير من العمليات الحسابية النقطة العائمة–فورتران–

تطبيقات األعمال•إصدار التقارير، واستخدام األرقام العشرية واألحرف–كوبول–

الذكاء االصطناعي•P من األرقام التي تم التالعب بها– الرموز بدال–LISP

برمجة األنظمة•بحاجة إلى الكفاءة بسبب االستخدام المستمر––C

برمجيات الويب•(،XHTML)مجموعة منتقاة من اللغات: العالمات مثل –P، جافا( PHPالبرمجة النصية )– P(، لألغراض العامة )مثال مثال

Page 5: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-5

معايير تقييم اللغة

السهولة التي يمكن قراءة وفهم :قابلية القراءة•البرامج

: السهولة مع أي لغة يمكن قابلية الكتابة•استخدامها إلنشاء برامج

المطابقة للمواصفات )أي، :الموثوقية•ينفذ)يؤدي( إلى مواصفاته(

: إجمالي التكلفة النهائيةالتكلفة•

Page 6: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-6

معايير التقييم: قابلية القراءةالبساطة اإلجمالية•

مجموعة من الميزات وبنيات يمكن التحكم فيها–)يعني القيام بنفس العملية(القليلة ميزة تعدد –الحد األدنى من عامل الحمل الزائد–

التعامدية•يمكن الجمع بين مجموعة صغيرة نسبيا من البنى البدائية في عدد صغير –

نسبيا من الطرقكل تركيبة ممكنة هي قانونية–

عبارات التحكم•(whileوجود هياكل التحكم المعروفة )مثال: عبارة –

أنواع البيانات وهياكلها•وجود مرافق كافية)مالئمة( لتعريف هياكل البيانات–

اعتبارات بناء جملة •أشكال المعرف: تكوين)تشكيل( مرنة–الكلمات الخاصة وأساليب تشكيل مجمع البيانات–الشكل والمعني: بنى)تركيبات( تصف نفسها ، وكلمات دالة ذات معنى–

Page 7: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-7

معايير التقييم: قابلية الكتابة

البساطة والتعامدية•بنيات قليلة، عدد صغير من األوليات، مجموعة صغيرة –

من القواعد للجمع بينهما

دعم للتجريد)لالستخراج(•القدرة على تحديد واستخدام هياكل معقدة أو عمليات –

بالطرق التي تسمح لتفاصيل يمكن تجاهلها

التعبيرية•مجموعة من طرق مريحة)مناسبة( نسبيا لتحديد –

العملياتمثال: إدراج)تضمين( من للبيان في العديد من اللغات –

الحديثة

Page 8: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-8

معايير التقييم: الموثوقية

نوع التحقق•اختبار لنوع األخطاء–

معالجة االستثناء•اعتراض أخطاء وقت التشغيل واتخاذ التدابير التصحيحية–

التعرج•وجود اثنين أو أكثر من أساليب المراجع متميزة لنفس موقع الذاكرة–

قابلية القراءة والكتابة•لغة ال تعتمد طرق"طبيعية" للتعبير عن خوارزمية سوف تستخدم –

بالضرورة نهوج"غير طبيعية"، وبالتالي تقليل االعتمادية

Page 9: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-9

معايير التقييم: التكلفة

تدريب المبرمجين الستخدام اللغة•كتابة البرامج )قربه من تطبيقات معينة(•ترجمة)تجميع( برامج•تنفيذ برامج••P لغة تنفيذ النظام: توافر المجمعين مجاناالموثوقية: الموثوقية الفقيرة تؤدي إلى ارتفاع •

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

Page 10: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-10

معايير التقييم: أخرى

القابلية للنقل•السهولة التي يمكن نقل البرامج من تنفيذ آلخر–

العمومية•أن تنطبق على مجموعة واسعة من التطبيقات–

ويلديفينيدنيس•اكتمال ودقة التعريف الرسمي باللغة–

Page 11: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-11

العوامل المؤثرة على تصميم اللغة

معمارية الحاسوب•يتم تطوير اللغات حول معمارية الكمبيوتر الشائعة، •

فون نيومانوالمعروفة باسم معمارية منهجيات البرمجة•منهجيات تطوير البرمجيات الجديدة )على سبيل •

المثال، تطوير البرمجيات كائنية المنحى( أدت إلى نماذج برمجة جديدة، وبالتالي لغات برمجة جديدة

Page 12: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-12

تأثير معمارية الحاسوب

معمارية الحاسوب المعروفة: فون نيومان•اللغات الحتمية، األكثر انتشارا، بسبب أجهزة الكمبيوتر فون نيومان–البيانات والبرامج مخزنة في الذاكرة–الذاكرة منفصلة عن وحدة المعالجة المركزية–التعليمات والبيانات منقولة باألنابيب من الذاكرة إلى وحدة –

المعالجة المركزيةأساس للغات الحتمية–

المتغيرات نموذج خاليا الذاكرة•عبارات التعيين نموذج األنابيب•التكرار هو فعال•

Page 13: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-13

معمارية فون نيومان

Page 14: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-14

تأثيرات منهجيات البرمجة

الخمسينات وأوائل الستينات: تطبيقات بسيطة؛ تقلق بشأن •كفاءة الجهاز

أواخر الستينات: كفاءة الناس أصبحت هامة؛ قابلية القراءة و •هياكل تحكم أفضل

البرمجة المهيكلة–التصميم من أعلى إلى أسفل وتنقيح)تحسين( تدريجي)على خطوات(–

أواخر السبعينات: عملية المنحى لبيانات المنحى•تجريد البيانات–

أواسط الثمانينات: البرمجة كائنية المنحى•تجريد البيانات + الوراثة + تعدد األشكال–

Page 15: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-15

فئات اللغة

الحتمية•السمات الرئيسية هي المتغيرات وعبارات التعيين، والتكرار–باسكال، Cمن األمثلة: –

الوظيفية•الوسيلة الرئيسية إلجراء العمليات الحسابية هو من خالل تطبيق وظائف –

للبراميترات المعطاةLISP, Schemeمن األمثلة: –

المنطقية•قائم على قواعد )القواعد هي محددة في أي ترتيب معين)بدون ترتيب( (–مثال: برولوج–

كائنية المنحى•تجريد البيانات ، والوراثة، والربط المتأخر–++Cمن األمثلة: جافا، –

التوصيفية•بل تستخدم لتحديد تخطيط معلومات في جديدة؛ ليست برمجة في حد ذاتها، –

مستندات ويبXHTML، XMLمن األمثلة: –

Page 16: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-16

Language Design Trade-Offs

• Reliability vs. cost of execution– Conflicting criteria– Example: Java demands all references to array

elements be checked for proper indexing but that leads to increased execution costs

• Readability vs. writability– Another conflicting criteria– Example: APL provides many powerful operators )and a

large number of new symbols(, allowing complex computations to be written in a compact program but at the cost of poor readability

• Writability )flexibility( vs. reliability– Another conflicting criteria– Example: C++ pointers are powerful and very flexible

but not reliably used

Page 17: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-17

Implementation Methods

• Compilation– Programs are translated into machine

language

• Pure Interpretation– Programs are interpreted by another

program known as an interpreter

• Hybrid Implementation Systems– A compromise between compilers and

pure interpreters

Page 18: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-18

Layered View of Computer

The operating system and language implementation are layered over Machine interface of a computer

Page 19: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-19

Compilation

• Translate high-level program )source language( into machine code )machine language(

• Slow translation, fast execution• Compilation process has several phases:

– lexical analysis: converts characters in the source program into lexical units

– syntax analysis: transforms lexical units into parse trees which represent the syntactic structure of program

– Semantics analysis: generate intermediate code– code generation: machine code is generated

Page 20: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-20

The Compilation Process

Page 21: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-21

Additional Compilation Terminologies

• Load module )executable image(: the user and system code together

• Linking and loading: the process of collecting system program and linking them to user program

Page 22: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-22

Execution of Machine Code

• Fetch-execute-cycle )on a von Neumann architecture(

initialize the program counter

repeat forever

fetch the instruction pointed by the counter

increment the counter

decode the instruction

execute the instruction

end repeat

Page 23: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-23

Von Neumann Bottleneck

• Connection speed between a computer’s memory and its processor determines the speed of a computer

• Program instructions often can be executed a lot faster than the above connection speed; the connection speed thus results in a bottleneck

• Known as von Neumann bottleneck; it is the primary limiting factor in the speed of computers

Page 24: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-24

Pure Interpretation

• No translation• Easier implementation of programs )run-

time errors can easily and immediately displayed(

• Slower execution )10 to 100 times slower than compiled programs(

• Often requires more space• Becoming rare on high-level languages• Significant comeback with some Web

scripting languages )e.g., JavaScript(

Page 25: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-25

Pure Interpretation Process

Page 26: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-26

Hybrid Implementation Systems

• A compromise between compilers and pure interpreters

• A high-level language program is translated to an intermediate language that allows easy interpretation

• Faster than pure interpretation• Examples

– Perl programs are partially compiled to detect errors before interpretation

– Initial implementations of Java were hybrid; the intermediate form, byte code, provides portability to any machine that has a byte code interpreter and a run-time system )together, these are called Java Virtual Machine(

Page 27: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-27

Hybrid Implementation Process

Page 28: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-28

Just-in-Time Implementation Systems

• Initially translate programs to an intermediate language

• Then compile intermediate language into machine code

• Machine code version is kept for subsequent calls

• JIT systems are widely used for Java programs

• .NET languages are implemented with a JIT system

Page 29: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-29

Preprocessors

• Preprocessor macros )instructions( are commonly used to specify that code from another file is to be included

• A preprocessor processes a program immediately before the program is compiled to expand embedded preprocessor macros

• A well-known example: C preprocessor– expands #include, #define, and similar

macros

Page 30: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-30

Programming Environments

• The collection of tools used in software development

• UNIX– An older operating system and tool collection– Nowadays often used through a GUI )e.g., CDE, KDE, or

GNOME( that run on top of UNIX

• Borland JBuilder– An integrated development environment for Java

• Microsoft Visual Studio.NET– A large, complex visual environment– Used to program in C#, Visual BASIC.NET, Jscript, J#, or

C++

Page 31: ISBN 0-321-49362-1 الفصل 1 مقدمات. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 مواضيع الفصل 1 أسباب دراسة مفاهيم لغات البرمجة

Copyright © 2007 Addison-Wesley. All rights reserved. 1-31

Summary

• The study of programming languages is valuable for a number of reasons:– Increase our capacity to use different constructs– Enable us to choose languages more intelligently– Makes learning new languages easier

• Most important criteria for evaluating programming languages include:– Readability, writability, reliability, cost

• Major influences on language design have been machine architecture and software development methodologies

• The major methods of implementing programming languages are: compilation, pure interpretation, and hybrid implementation