การเสนอหัวข้อและโครงร่างวิทยานิพนธ์และการค้นคว้าแบบอิสระ ... · ท
ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร...
Transcript of ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร...
ภาษาโปรแกรม
Programming Language
Introduction
Course outline
ผสอน : ศรารตน วรรณแจม
email : [email protected]
หนงสอ
Programming Language : Concepts & Constructs by Ravi Sethi, Addison-Wesley, 1996.
Concepts of Programming Languages by Robert W. Sebesta, Addison-Wesley, 1999.
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 30%
Report 10%
ภาษาโปรแกรม เครองมอ (tool) ทสงใหคอมพวเตอรท างานตามทตองการ
วธการหรอเครองมอทใชในการสอสารระหวางโปรแกรมเมอร
เครองมอทใชส าหรบแสดงการออกแบบขนตอนการท างานในระดบสง (high-level designs)
สญลกษณทส าหรบวธการแกปญหา (notation for algorithms)
วธการแสดงความสมพนธระหวางแนวคด
เครองมอส าหรบการทดลอง
วธการหรอเครองมอทใชควบคมอปกรณทางคอมพวเตอร 4
Von Neumann Architecture คอมพวเตอรในอดตจนถงปจจบน ถกพฒนาโดยอางอง
แนวคดดงน
คอมพวเตอรประกอบดวยสวนส าคญ 3 สวน คอ หนวยความจ า, หนวยควบคม และหนวยประมวลผล
การตดตอเพอสงผานขอมลระหวางหนวยความจ าและ หนวยประมวลผล สามารถท าไดครงละ 1 หนวยขอมล
ขอมลและค าสงทใชการประมวลผลจะถกเกบในหนวย ความจ า ซงถกระบต าแหนงดวยต าแหนงของหนวยความจ า (Memory Address)
5
ภาษาโปรแกรม
ภาษาทใชตดตอกบคอมพวเตอร เพอใหคอมพวเตอรท างานตามทตองการ
ออกแบบและสรางขนใหสามารถท างานไดกบคอมพวเตอรทมสถาปตยกรรมแบบ Von Neumann
ตองท างานทละค าสงเรยงกนอยางเปนล าดบ
ตองมการนยามตวแปร เพอใชในการอางองถงต าแหนง ขอมลในหนวยความจ า
ภาษาในกลมน เรยกวา imperative หรอ conventional language : COBOL,FORTRAN,Pascal, C
6
ท าไมตองศกษาภาษาโปรแกรม
พฒนาความรเรองโครงสรางทส าคญของภาษาโปรแกรม
พฒนาความรความเขาใจในภาษาโปรแกรมทเลอกใช
เลอกภาษาโปรแกรมทเหมาะสมกบงานได
เรยนรภาษาโปรแกรมใหมไดงายขน
เปนพนฐานในการสรางภาษาโปรแกรมใหมได
7
สงทมอทธผลตอการพฒนาภาษาโปรแกรม
เครองคอมพวเตอรและโปรแกรมควบคมระบบ(Computer Hardware
and Operating System)
การประยกตใชคอมพวเตอร (Application)
วธการเขยนโปรแกรม (Programming Methods)
วธการน าไปใช (Implementation Methods)
การศกษาทฤษฎ (Theoretical Study)
ความเปนมาตราฐาน (Standardization)
8
ประวตของภาษาโปรแกรม ยคแรก : ควบคมดวย Hardwired ซงเปนการควบคมการ
ท างานของฮารดแวรโดยใชฮารดแวร ท าใหไมมความยดหยนในการใชงาน เปนการสรางระบบคอมพวเตอรเพอใชงานเฉพาะอยาง
แนวคด : คอมพวเตอรไมควรเปนอปกรณท างานเฉพาะอยาง ควรจะท างานตามทผใชตองการ โดยใชชดของค าสงในการควบคมการท างาน
เกดการพฒนาภาษาโปรแกรมตาง ๆ ขนพรอม ๆ กบการพฒนาระบบคอมพวเตอร (Hardware)
9
ระดบของภาษาในทางคอมพวเตอร (Levels of Language in Computing)
10
ยคของภาษาโปรแกรม
ยคท 1 : ภาษาเครอง (Machine Language)
ยคท 2 : ภาษาสญลกษณ (Symbolic Language)
ยคท 3 : ภาษาระดบสง (High Level Language)
11
ภาษาโปรแกรม
Higher level แบงออกตามระดบของการอานเขาใจงาย (readability) เมอเทยบ
กบระดบของการอานเขาใจในขอความภาษาองกฤษ
แบงตามระดบของการไมขนอยกบเครอง (machine independence)
General purpose ความสามารถในการประยกตของภาษาโปรแกรมกบงานหรอปญหา
ดานตาง ๆ ซงหลากหลาย
12
ภาษาเครอง
ก าเนดมาพรอมกบคอมพวเตอร
เปนภาษาทเครองเขาใจได โดยตรง
เปนทมาของค าวา code ซงปจจบนหมายถง ขอความทประกอบขนเปนโปรแกรมในภาษาใด ๆ (program text)
เปนภาษาระดบต า
มนษยท าความเขาใจไดยาก
ท างานเรว
ตวอยางบางสวนของโคด
00000010101111001010
00000010111111001000
00000011001110101000
บวกเลขในต าแหนงท 10 กบเลขในต าแหนงท 11 แลวเกบผลลพธไวในต าแหนงท 12
13
ภาษาสญลกษณ
เนองจากภาษาเครองเขาใจยาก และภาษาองกฤษใชค ามากเกนกวาทจะใชในการแสดงความหมาย (verbose)
สรางภาษา Assembly โดยใชสญลกษณและชอแทนโคดจรง
เปนภาษาระดบต าทอานเขาใจไดงายขน
เปนภาษาทขนอยกบเครอง
1: M[0] := 0; 2: read(M[1]) 3: if M[1] > 0 then goto 5 4: goto 7 5: 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
Assembler
Assembly
code
Object code
15
ภาษาระดบสง
ใชสญลกษณทคนเคยและอานเขาใจงาย
สามารถน าโปรแกรมไปรนบนเครองทตางกนโดยท าการ แกไขโคดเลกนอยหรอไมตองแกไขเลย (portability / machine independence)
มชดค าสงโปรแกรมใหใช (program libraries)
มการตรวจสอบขอผดพลาด (error) ในชวงทท าการเขยน (implementation)
16
ภาษาระดบสง
แบงยอยเปน 3 ประเภท คอ
ภาษายคท 3 (3GL- Fourth General Language)
ภาษายคท 4 (4GL- Fourth General Language)
ภาษายคท 5 (5GL- Fourth General Language)
17
ภาษายคท 3
เปนภาษาแรกทมใชค าสงคลายกบประโยคในภาษาองกฤษ ท าใหใชงานงายกวาภาษาในยคกอน
มคณสมบต portable ท าใหสามารถน า object code ทสราง (compile) จากระบบหนงไปใชระบบทตางกนได
ภาษาทอยในกลมน ไดแก
FORTAN C COBOL C++ BASIC Java Pascal ActiveX
18
ภาษายคท 4 เปนภาษาเหมาะกบงานเฉพาะดานและใชงานงายกวา 3GL
ใชลกษณะ text-based environment (คลาย 3GL)
โปรแกรมเมอรสามารถใช visual environment ไดโดยใชเครองมอทางดานกราฟก ท าใหสราง Prototype หรอ GUIของโปรแกรมไดรวดเรว
สวนใหญเปนโปรแกรมทรวบรวมการจดการฐานขอมลดวย
ภาษาทอยในกลมน ไดแก
Visual Basic (VB) VisualAge Authoring environments
19
ภาษายคท 5
เปนภาษาทรวมเอาปญญาประดษฐ (Artificial Intelligence) และระบบผเชยวชาญ (Expert Systems) มาใชในการสรางโปรแกรม ซงท าไดยาก
ระบบจะสนใจทจะคดและมสวนรวมในการตดสนใจของผใช
อาจเปนการหาค าตอบทเหมาะส าหรบค าถามทผใชปอน และค าตอบทไดจะเหมอนกบเปนค าตอบจากมนษย
ยงเปนทถกเถยงกนในหมโปรแกรมเมอรวามอยหรอไม
20
ภาษาโปรแกรมทด
ความชดเจนและงายของการนยามภาษา (Concept)
ความชดเจนของรปแบบโปรแกรม (Program Syntax)
ความเปนธรรมชาตส าหรบการประยกตใช (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)
การบ ารงรกษา (Maintenance)
23
Programming Domains
Scientific Application
Business Application
Artificial Intelligence
System Programming
Scripting Language
Special Purpose Language
24
Implementation Methods
Compilation แปล (translate) จากภาษาโปรแกรมชนสงเปนภาษาเครอง
ใชเวลาแปลงนาน
ท างาน (execute) เรว
Interpreter ไมตองท าการแปลกอนเรยกใช
ท างานชา
Hybrid Implementation cost ในการแปลไมมาก
ท างานเรวปานกลาง 25
Source program
Lexical analyzer
Intermediate code generator
(and semantic analyzer) Optimization
Symbol table
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
Compilation Pure Interpretation Hybrid Implementation 26
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
Algol58 Algol60 SIMULA Algol W SIMULA67 Algol68 Pascal MODULA-2 Smalltalk80 Ada C++ Oberon MODULA-3 ANSI C Eiffel Ada95 Java
รปแสดง แผนผงประวต โดยสงเขปของก าเนดภาษา
โปรแกรมทส าคญ 28