ภาษาโปรแกรม programming language
DESCRIPTION
ภาษาโปรแกรม Programming Language. Introduction. Course outline. ผู้สอน : รัชดาพร คณาวงษ์ email : [email protected] office : ตึกวิทย์ 1 ชั้น 6 Telephone : 8711 หนังสือ Programming Language : Concepts & Constructs 2 nd Edition by Ravi Sethi, Addison-Wesley, 1996. - PowerPoint PPT PresentationTRANSCRIPT
Course outline
ผู้��สอน : ร�ชดาพร คณาวงษ� email : [email protected] office : ตึ�กว�ทย์� 1 ช��น 6 Telephone : 8711
หน�งส!อ Programming Language : Concepts & Constructs
2nd Edition by Ravi Sethi, Addison-Wesley, 1996. Concepts of Programming Languages 6th Edition
by Robert W. Sebesta, Addison-Wesley, 2003.
2
เน!�อหาและการว�ดผู้ล Introduction
The role of programming language
Language Description : syntactic structure
Imperative programming Statement : Structured
programming Types : Data Representation Procedure Activations
Object-Oriented Programming
Functional Programming Logic Programming
เกณฑ์�การวัดผล สอบกลางภาค 30% สอบปลาย์ภาค 30% Assignments 20% การบ�าน 20%
ภาษาโปรแกรม
เคร!&องม!อ (tool) ท'&ส� &งให�คอมพ�วเตึอร�ท)างานตึามท'&ตึ�องการ ว�ธี'การหร!อเคร!&องม!อท'&ใช�ในการส!&อสารระหว+างโปรแกรมเมอร� เคร!&องม!อท'&ใช�ส)าหร�บแสดงการออกแบบขั้��นตึอนการท)างานในระด�บส�ง
- (high level designs) ส�ญล�กษณ�ท'&ส)าหร�บว�ธี'การแก�ป/ญหา (notation for algorithms) ว�ธี'การแสดงความส�มพ�นธี�ระหว+างแนวค�ด เคร!&องม!อส)าหร�บการทดลอง ว�ธี'การหร!อเคร!&องม!อท'&ใช�ควบค0มอ0ปกรณ�ทางคอมพ�วเตึอร�
4
Von Neumann Architecture
คอมพ�วเตึอร�ในอด'ตึจนถึ�งป/จจ0บ�น ถึ�กพ�ฒนาโดย์อ�างอ�งแนวค�ดด�งน'� คอมพ�วเตึอร�ประกอบด�วย์ส+วนส)าค�ญ 3 ส+วน ค!อ
หน+วย์ความจ)า , หน+วย์ควบค0ม และหน+วย์ประมวลผู้ล การตึ�ดตึ+อเพ!&อส+งผู้+านขั้�อม�ลระหว+างหน+วย์ความจ)าและ
หน+วย์ประมวลผู้ล สามารถึท)าได�คร��งละ 1 หน+วย์ขั้�อม�ล ขั้�อม�ลและค)าส� &งท'&ใช�การประมวลผู้ลจะถึ�กเก5บในหน+วย์
ความจ)า ซึ่�&งถึ�กระบ0ตึ)าแหน+งด�วย์ตึ)าแหน+งขั้องหน+วย์ความจ)า(Memory Address)
5
ภาษาโปรแกรม
ภาษาท'&ใช�ตึ�ดตึ+อก�บคอมพ�วเตึอร� เพ!&อให�คอมพ�วเตึอร�ท)างานตึามท'&ตึ�องการ
ออกแบบและสร�างขั้��นให�สามารถึท)างานได�ก�บคอมพ�วเตึอร�ท'&ม' สถึาป/ตึย์กรรมแบบ Von Neumann
ตึ�องท)างานท'ละค)าส� &งเร'ย์งก�นอย์+างเป7นล)าด�บ ตึ�องม'การน�ย์ามตึ�วแปร เพ!&อใช�ในการอ�างอ�งถึ�งตึ)าแหน+ง
ขั้�อม�ลในหน+วย์ความจ)า ภาษาในกล0+มน'� เร'ย์กว+า imperative หร!อ conventional
language : COBOL,FORTRAN,Pascal, C
6
ท)าไมตึ�องศึ�กษาภาษาโปรแกรม
พ�ฒนาความร� �เร!&องโครงสร�างท'&ส)าค�ญขั้องภาษาโปรแกรม
พ�ฒนาความร� �ความเขั้�าใจในภาษาโปรแกรมท'&เล!อกใช� เล!อกภาษาโปรแกรมท'&เหมาะสมก�บงานได� เร'ย์นร� �ภาษาโปรแกรมใหม+ได�ง+าย์ขั้��น เป7นพ!�นฐานในการสร�างภาษาโปรแกรมใหม+ได�
7
ส�&งท'&ม'อ�ทธี�ผู้ลตึ+อการพ�ฒนาภาษาโปรแกรม
เคร!&องคอมพ�วเตึอร�และโปรแกรมควบค0มระบบ(Computer Hardware and Operating System)
การประย์0กตึ�ใช�คอมพ�วเตึอร� (Application)
ว�ธี'การเขั้'ย์นโปรแกรม (Programming Methods)
ว�ธี'การน)าไปใช� (Implementation Methods)
การศึ�กษาทฤษฎี' (Theoretical Study)
ความเป7นมาตึราฐาน (Standardization)
8
ประว�ตึ�ขั้องภาษาโปรแกรม
ย์0คแรก : ควบค0มด�วย์ Hardwired ซึ่�&งเป7นการควบค0ม การท)างานขั้องฮาร�ดแวร�โดย์ใช�ฮาร�ดแวร� ท)าให�ไม+ม'ความ
ย์!ดหย์0+นในการใช�งาน เป7นการสร�างระบบคอมพ�วเตึอร�เพ!&อใช�งานเฉพาะอย์+าง
แนวค�ด : คอมพ�วเตึอร�ไม+ควรเป7นอ0ปกรณ�ท)างานเฉพาะ อย์+าง ควรจะท)างานตึามท'&ผู้��ใช�ตึ�องการ โดย์ใช�ช0ดขั้องค)าส�&ง
ในการควบค0มการท)างาน เก�ดการพ�ฒนาภาษาโปรแกรมตึ+าง ๆ ขั้��นพร�อม ๆ ก�บการ
พ�ฒนาระบบคอมพ�วเตึอร� (Hardware)
9
ย์0คขั้องภาษาโปรแกรม
ย์0คท'& 1 : ภาษาเคร!&อง (Machine Language)
ย์0คท'& 2 : ภาษาส�ญล�กษณ� (Symbolic Language)
ย์0คท'& 3 : ภาษาระด�บส�ง (High Level Language)
11
ภาษาโปรแกรม
Higher level แบ+งออกตึามระด�บขั้องการอ+านเขั้�าใจง+าย์ (readability)
เม!&อเท'ย์บก�บระด�บขั้องการอ+านเขั้�าใจในขั้�อความภาษาอ�งกฤษ
แบ+งตึามระด�บขั้องการไม+ขั้��นอย์�+ก�บเคร!&อง (machine independence)
G eneral purpose ความสามารถึในการประย์0กตึ�ขั้องภาษาโปรแกรมก�บงาน
หร!อป/ญหาด�านตึ+าง ๆ ซึ่�&งหลากหลาย์
12
ภาษาเคร!&อง
ก)าเน�ดมาพร�อมก�บคอมพ�วเตึอร� เป7นภาษาท'&เคร!&องเขั้�าใจได�
โดย์ตึรง เป7นท'&มาขั้องค)าว+า code ซึ่�&ง
ป/จจ0บ�นหมาย์ถึ�ง ขั้�อความท'&ประกอบขั้��นเป7นโปรแกรมใน
ภาษาใด ๆ (program text) เป7นภาษาระด�บตึ)&า มน0ษย์�ท)าความเขั้�าใจได�ย์าก ท)างานเร5ว
ตึ�วอย์+างบางส+วนขั้องโค�ด
00000010101111001010
00000010111111001000
00000011001110101000
บวกเลขั้ในตึ)าแหน+งท'& 10 ก�บเลขั้ ในตึ)าแหน+งท'& 11 แล�วเก5บผู้ลล�พธี�
ไว�ในตึ)าแหน+งท'& 12
13
ภาษาส�ญล�กษณ�
เน!&องจากภาษาเคร!&องเขั้�าใจย์ากและภาษาอ�งกฤษใช�ค)ามากเก�นกว+าท'&จะใช�ในการแสดงความ
หมาย์ (verbose) สร�างภาษา Assembly โดย์ใช�
ส�ญล�กษณ�และช!&อแทนโค�ดจร�ง เป7นภาษาระด�บตึ)&าท'&อ+านเขั้�าใจได�
ง+าย์ขั้��น เป7นภาษาท'&ขั้��นอย์�+ก�บเคร!&อง
1: M[0] := 0;2: read(M[1])3: if M[1] > 0 then goto 54: goto 75: M[3] := M[0] - M[1];6: if M[3] > then goto 16 7: writeln(M[1])8: read(M[2])9: M[3] := M[2] - M[1];10: if M[3] > then goto 12
….….
16: halt
Program
14
ภาษาระด�บส�ง
ใช�ส�ญล�กษณ�ท'&ค0�นเคย์และอ+านเขั้�าใจง+าย์ สามารถึน)าโปรแกรมไปร�นบนเคร!&องท'&ตึ+างก�นโดย์ท)าการ
แก�ไขั้โค�ดเล5กน�อย์หร!อไม+ตึ�องแก�ไขั้เลย์ (portability / machine independence)
ม'ช0ดค)าส�&งโปรแกรมให�ใช� (program libraries) ม'การตึรวจสอบขั้�อผู้�ดพลาด (error) ในช+วงท'&ท)าการเขั้'ย์น
(implementation)
16
ภาษาระด�บส�ง
แบ+งย์+อย์เป7น 3 ประเภท ค!อ
ภาษาย์0คท'& 33 GL- Fourth General Language) ภาษาย์0คท'& 4 4( GL- Fourth General Language) ภาษาย์0คท'& 5 5( GL- Fourth General Language)
17
ภาษาย์0คท'& 3
เป7นภาษาแรกท'&ม'ใช�ค)าส�&งคล�าย์ก�บประโย์คในภาษาอ�งกฤษท)าให�ใช�งานง+าย์กว+าภาษาในย์0คก+อน
ม'ค0ณสมบ�ตึ� portable ท)าให�สามารถึน)า object code ท'& สร�าง (compile) จากระบบหน�&งไปใช�ระบบท'&ตึ+างก�นได�
ภาษาท'&อย์�+ในกล0+มน'� ได�แก+
FORTAN CCOBOL C++BASIC JavaPascal ActiveX
18
ภาษาย์0คท'& 4 เป7นภาษาเหมาะก�บงานเฉพาะด�านและใช�งานง+าย์กว+า 3GL ใช�ล�กษณะ text-based environment ( คล�าย์ 3 GL) โปรแกรมเมอร�สามารถึใช� visual environment ได�โดย์ใช�
เคร!&องม!อทางด�านกราฟิ@ก ท)าให�สร�าง Prototype หร!อ GUIขั้องโปรแกรมได�รวดเร5ว
ส+วนใหญ+เป7นโปรแกรมท'&รวบรวมการจ�ดการฐานขั้�อม�ลด�วย์ ภาษาท'&อย์�+ในกล0+มน'� ได�แก+
Visual Basic (VB)VisualAgeAuthoring environments
19
ภาษาย์0คท'& 5
เป7นภาษาท'&รวมเอาป/ญญาประด�ษฐ� (Artificial Intelligence) และระบบผู้��เช'&ย์วชาญ (Expert Systems)
มาใช�ในการสร�างโปรแกรม ซึ่�&งท)าได�ย์าก ระบบจะสนใจท'&จะค�ดและม'ส+วนร+วมในการตึ�ดส�นใจขั้องผู้��ใช� อาจเป7นการหาค)าตึอบท'&เหมาะส)าหร�บค)าถึามท'&ผู้��ใช�ปAอน และค)า
ตึอบท'&ได�จะเหม!อนก�บเป7นค)าตึอบจากมน0ษย์� ย์�งเป7นท'&ถึกเถึ'ย์งก�นในหม�+โปรแกรมเมอร�ว+าม'อย์�+หร!อไม+
20
ภาษาโปรแกรมท'&ด'
ความช�ดเจนและง+าย์ขั้องการน�ย์ามภาษา (Concept)
ความช�ดเจนขั้องร�ปแบบโปรแกรม (Program Syntax)
ความเป7นธีรรมชาตึ�ส)าหร�บการประย์0กตึ�ใช� (Application)
ความง+าย์ขั้องการตึรวจสอบโปรแกรม (Verification)
ส�&งแวดล�อมขั้องการเขั้'ย์นโปรแกรม (Environment)
การเคล!&อนย์�าย์โปรแกรม (Portability)
ค+าใช�จ+าย์ (cost)
21
Programming Environments
เคร!&องม!อตึ+าง ๆ ท'&ใช�ในการพ�ฒนาโปรแกรม (Tools used in software development)
Unix ระบบปฏิ�บ�ตึ�การท'&ม'เคร!&องม!อพ�ฒนาโปรแกรมมาพร�อม
Borland C++ เคร!&องม!อท'&ใช�ในการเขั้'ย์น C และ C++ บน PC
Smalltalk Language Processor/Environment
Microsoft Visual C++ visual environment ท'&ม'ขั้นาดใหญ+และซึ่�บซึ่�อน
22
กระบวนการพ�ฒนาโปรแกรม
การว�เคราะห�ความตึ�องการ (Needs analysis)
การออกแบบระบบ (System) การพ�ฒนา (Development) การน)าไปใช� (Implementation) การบ)าร0งร�กษา (Maintenance)
23
Programming Domains
Scientific Application
Business Application
Artificial Intelligence
System Programming
Scripting Language
Special Purpose Language
24
Implementation Methods
Compilation แปล (translate) จากภาษาโปรแกรมช��นส�งเป7นภาษาเคร!&อง ใช�เวลาแปลงนาน ท)างาน (execute) เร5ว
Interpreter ไม+ตึ�องท)าการแปลก+อนเร'ย์กใช� ท)างานช�า
Hybrid Implementation cost ในการแปลไม+มาก ท)างานเร5วปานกลาง
25
Source program
Lexical analyzer
Intermediate code generator
(and semantic analyzer)Optimization
Symboltable
Code generator
Computer
Lexical units
Parse tree
Intermediate code
Machine language
Input data
Results
Syntax analyzer
Source program
Input data
Results
Lexical analyzer
Intermediate code generator
Lexical units
Parse tree
Intermediate code
Syntax analyzer
Interpreter
CompilationCompilationPure InterpretationPure Interpretation
Hybrid ImplementationHybrid Implementation26
Language Categories (Paradigms)
Imperative
Object-Oriented
Logic
Functional
Imperative - Procedural : C
- - Block Structured : Pascal, Ada - - Object based : Ada
- - - Object oriented : Ada, Object Pascal, C++, Java
- -Parallel Processing : Ada, Pascal S -, Occam, C Linda
Declarative - Logic : Prolog - Functional : LISP, Scheme - Database : SQL
27
1957 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
58Algol60Algol
SSS S SS Algol W SIMULA67 68
SSSSSS
-MODULA 2
Smalltalk80
Ada C++
S SSSSS - MODULA 3 ANSI C SSSSSS
Ada95 Java
ร�ปแสดงแผู้นผู้�งประว�ตึ�โดย์ส�งเขั้ปขั้องก)าเน�ดภาษาโปรแกรมท'&ส)าค�ญ
28
ราย์งาน ร�ปแบบงาน : ราย์งานภาษาโปรแกรมคอมพ�วเตึอร� 10( %)
เล!อกภาษาท'&ตึ�องการ (เล!อกก+อนม'ส�ทธี�ก+อน) http://directory.google.com/Top/Computers/Programming/Langua
ges/
http://dir.lycos.com/Computers/Programming/Languages/ หร!อ site อ!&น ๆ ท'&เก'&ย์วขั้�อง
ตึรวจสอบว+าม'คนเล!อกไปแล�วหร!อไม+ ส+ง mail เพ!&อบอกภาษาท'&ตึ�องการท)าพร�อมก�บ URL ท'&เก'&ย์วขั้�องก�บภาษาน��นมา
ถึ�าเห5นสมควรจะ mail ตึอบกล�บไป ศึ�กษาภาษาน��นอย์+างละเอ'ย์ด เขั้'ย์นราย์งานส+ง 1 ฉบ�บ ส+งมาในร�ปขั้อง PDF format ใช�ตึ�วอ�กษร Cordia New 16
29
ราย์งาน (ตึ+อ)
ราย์ละเอ'ย์ด (อย์+างน�อย์ ) ท'&ควรม'ในราย์งาน ประกอบด�วย์ ประว�ตึ�ความเป7นมา บอกความเป7นมา จ0ดก)าเน�ด บ0คคลหร!อหน+วย์งานท'&เก'&ย์วขั้�อง พ�ฒนาการ
ในช+วงแรก จ0ดเด+นขั้องภาษา ค0ณสมบ�ตึ�ท'&ส)าค�ญขั้องภาษาท'&เป7นจ0ดเด+น ท)าให�แตึกตึ+างจากภาษาอ!&น เปAาหมาย์ในการใช�งาน ภาษาน'�เหมาะ หร!อสร�างขั้��น เพ!&องานใดเป7นเฉพาะ สถึานภาพ ขั้ณะน'�ม'สถึานภาพเป7นอย์+างไร เล�กไปแล�ว ย์�งม'คนใช�อย์�+ กลาย์พ�นธี�เป7นภาษาใหม+ไป
แล�ว เป7นตึ�น ทร�พย์ากร ม'อะไรน+าสนใจให�ใช�ได�บ�าง ตึ�วอย์+าง code หร!อ compiler แหล+งขั้+าว mailing
list หร!อ chat room เป7นตึ�น แหล+งอ�างอ�ง เอกสารอ�างอ�งตึ+าง ๆ จาก web site ก5ได�
ก)าหนดส+ง : 20 ธี�นวาคม 2547 เวลา 1600. น.
30