1 / 30

ภาษาโปรแกรม Programming Language

ภาษาโปรแกรม Programming Language. Introduction. Course outline. ผู้สอน : รัชดาพร คณาวงษ์ email : kanawong@su.ac.th office : ตึกวิทย์ 1 ชั้น 6 Telephone : 8711 หนังสือ Programming Language : Concepts & Constructs 2 nd Edition by Ravi Sethi, Addison-Wesley, 1996.

Download Presentation

ภาษาโปรแกรม Programming Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ภาษาโปรแกรมProgramming Language Introduction

  2. Course outline • ผู้สอน : รัชดาพร คณาวงษ์ • email : kanawong@su.ac.th • 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

  3. 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% เนื้อหาและการวัดผล

  4. ภาษาโปรแกรม • เครื่องมือ (tool) ที่สั่งให้คอมพิวเตอร์ทำงานตามที่ต้องการ • วิธีการหรือเครื่องมือที่ใช้ในการสื่อสารระหว่างโปรแกรมเมอร์ • เครื่องมือที่ใช้สำหรับแสดงการออกแบบขั้นตอนการทำงานในระดับสูง (high-level designs) • สัญลักษณ์ที่สำหรับวิธีการแก้ปัญหา (notation for algorithms) • วิธีการแสดงความสัมพันธ์ระหว่างแนวคิด • เครื่องมือสำหรับการทดลอง • วิธีการหรือเครื่องมือที่ใช้ควบคุมอุปกรณ์ทางคอมพิวเตอร์ 4

  5. Von Neumann Architecture คอมพิวเตอร์ในอดีตจนถึงปัจจุบัน ถูกพัฒนาโดยอ้างอิง แนวคิดดังนี้ • คอมพิวเตอร์ประกอบด้วยส่วนสำคัญ 3 ส่วน คือ หน่วยความจำ, หน่วยควบคุม และหน่วยประมวลผล • การติดต่อเพื่อส่งผ่านข้อมูลระหว่างหน่วยความจำและหน่วยประมวลผล สามารถทำได้ครั้งละ 1 หน่วยข้อมูล • ข้อมูลและคำสั่งที่ใช้การประมวลผลจะถูกเก็บในหน่วยความจำ ซึ่งถูกระบุตำแหน่งด้วยตำแหน่งของหน่วยความจำ (Memory Address) 5

  6. ภาษาโปรแกรม • ภาษาที่ใช้ติดต่อกับคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์ทำงานตามที่ต้องการ • ออกแบบและสร้างขึ้นให้สามารถทำงานได้กับคอมพิวเตอร์ที่มีสถาปัตยกรรมแบบ Von Neumann • ต้องทำงานทีละคำสั่งเรียงกันอย่างเป็นลำดับ • ต้องมีการนิยามตัวแปร เพื่อใช้ในการอ้างอิงถึงตำแหน่งข้อมูลในหน่วยความจำ • ภาษาในกลุ่มนี้ เรียกว่า imperative หรือ conventional language : COBOL,FORTRAN,Pascal, C 6

  7. ทำไมต้องศึกษาภาษาโปรแกรมทำไมต้องศึกษาภาษาโปรแกรม • พัฒนาความรู้เรื่องโครงสร้างที่สำคัญของภาษาโปรแกรม • พัฒนาความรู้ความเข้าใจในภาษาโปรแกรมที่เลือกใช้ • เลือกภาษาโปรแกรมที่เหมาะสมกับงานได้ • เรียนรู้ภาษาโปรแกรมใหม่ได้ง่ายขึ้น • เป็นพื้นฐานในการสร้างภาษาโปรแกรมใหม่ได้ 7

  8. สิ่งที่มีอิทธิผลต่อการพัฒนาภาษาโปรแกรมสิ่งที่มีอิทธิผลต่อการพัฒนาภาษาโปรแกรม • เครื่องคอมพิวเตอร์และโปรแกรมควบคุมระบบ(Computer Hardware and Operating System) • การประยุกต์ใช้คอมพิวเตอร์ (Application) • วิธีการเขียนโปรแกรม (Programming Methods) • วิธีการนำไปใช้ (Implementation Methods) • การศึกษาทฤษฎี (Theoretical Study) • ความเป็นมาตราฐาน (Standardization) 8

  9. ประวัติของภาษาโปรแกรมประวัติของภาษาโปรแกรม • ยุคแรก : ควบคุมด้วย Hardwired ซึ่งเป็นการควบคุมการทำงานของฮาร์ดแวร์โดยใช้ฮาร์ดแวร์ ทำให้ไม่มีความยืดหยุ่นในการใช้งาน เป็นการสร้างระบบคอมพิวเตอร์เพื่อใช้งานเฉพาะอย่าง • แนวคิด : คอมพิวเตอร์ไม่ควรเป็นอุปกรณ์ทำงานเฉพาะอย่าง ควรจะทำงานตามที่ผู้ใช้ต้องการ โดยใช้ชุดของคำสั่งในการควบคุมการทำงาน • เกิดการพัฒนาภาษาโปรแกรมต่าง ๆ ขึ้นพร้อม ๆ กับการพัฒนาระบบคอมพิวเตอร์ (Hardware) 9

  10. ระดับของภาษาในทางคอมพิวเตอร์(Levels of Language in Computing) 10

  11. ยุคของภาษาโปรแกรม • ยุคที่ 1 : ภาษาเครื่อง (Machine Language) • ยุคที่ 2 : ภาษาสัญลักษณ์ (Symbolic Language) • ยุคที่ 3 : ภาษาระดับสูง (High Level Language) 11

  12. ภาษาโปรแกรม • Higher level • แบ่งออกตามระดับของการอ่านเข้าใจง่าย (readability) เมื่อเทียบกับระดับของการอ่านเข้าใจในข้อความภาษาอังกฤษ • แบ่งตามระดับของการไม่ขึ้นอยู่กับเครื่อง (machine independence) • General purpose • ความสามารถในการประยุกต์ของภาษาโปรแกรมกับงานหรือปัญหาด้านต่าง ๆ ซึ่งหลากหลาย 12

  13. กำเนิดมาพร้อมกับคอมพิวเตอร์กำเนิดมาพร้อมกับคอมพิวเตอร์ เป็นภาษาที่เครื่องเข้าใจได้โดยตรง เป็นที่มาของคำว่า codeซึ่งปัจจุบันหมายถึง ข้อความที่ประกอบขึ้นเป็นโปรแกรมในภาษาใด ๆ (program text) เป็นภาษาระดับต่ำ มนุษย์ทำความเข้าใจได้ยาก ทำงานเร็ว ตัวอย่างบางส่วนของโค้ด 00000010101111001010 00000010111111001000 00000011001110101000 บวกเลขในตำแหน่งที่ 10 กับเลขในตำแหน่งที่ 11 แล้วเก็บผลลัพธ์ไว้ในตำแหน่งที่ 12 ภาษาเครื่อง 13

  14. เนื่องจากภาษาเครื่องเข้าใจยาก และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (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

  15. Assembly code Assembler Object code 15

  16. ภาษาระดับสูง • ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย • สามารถนำโปรแกรมไปรันบนเครื่องที่ต่างกันโดยทำการแก้ไขโค้ดเล็กน้อยหรือไม่ต้องแก้ไขเลย (portability / machine independence) • มีชุดคำสั่งโปรแกรมให้ใช้ (program libraries) • มีการตรวจสอบข้อผิดพลาด (error) ในช่วงที่ทำการเขียน (implementation) 16

  17. ภาษาระดับสูง แบ่งย่อยเป็น 3 ประเภท คือ • ภาษายุคที่ 3 (3GL- Fourth General Language) • ภาษายุคที่ 4 (4GL- Fourth General Language) • ภาษายุคที่ 5 (5GL- Fourth General Language) 17

  18. ภาษายุคที่ 3 • เป็นภาษาแรกที่มีใช้คำสั่งคล้ายกับประโยคในภาษาอังกฤษทำให้ใช้งานง่ายกว่าภาษาในยุคก่อน • มีคุณสมบัติ portable ทำให้สามารถนำ object code ที่สร้าง (compile) จากระบบหนึ่งไปใช้ระบบที่ต่างกันได้ • ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ FORTAN C COBOL C++ BASIC Java Pascal ActiveX 18

  19. ภาษายุคที่ 4 • เป็นภาษาเหมาะกับงานเฉพาะด้านและใช้งานง่ายกว่า 3GL • ใช้ลักษณะ text-based environment (คล้าย 3GL) • โปรแกรมเมอร์สามารถใช้ visual environment ได้โดยใช้เครื่องมือทางด้านกราฟิก ทำให้สร้าง Prototype หรือ GUIของโปรแกรมได้รวดเร็ว • ส่วนใหญ่เป็นโปรแกรมที่รวบรวมการจัดการฐานข้อมูลด้วย • ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ Visual Basic (VB) VisualAge Authoring environments 19

  20. ภาษายุคที่ 5 • เป็นภาษาที่รวมเอาปัญญาประดิษฐ์ (Artificial Intelligence) และระบบผู้เชี่ยวชาญ (Expert Systems) มาใช้ในการสร้างโปรแกรม ซึ่งทำได้ยาก • ระบบจะสนใจที่จะคิดและมีส่วนร่วมในการตัดสินใจของผู้ใช้ • อาจเป็นการหาคำตอบที่เหมาะสำหรับคำถามที่ผู้ใช้ป้อน และคำตอบที่ได้จะเหมือนกับเป็นคำตอบจากมนุษย์ • ยังเป็นที่ถกเถียงกันในหมู่โปรแกรมเมอร์ว่ามีอยู่หรือไม่ 20

  21. ภาษาโปรแกรมที่ดี • ความชัดเจนและง่ายของการนิยามภาษา (Concept) • ความชัดเจนของรูปแบบโปรแกรม (Program Syntax) • ความเป็นธรรมชาติสำหรับการประยุกต์ใช้ (Application) • ความง่ายของการตรวจสอบโปรแกรม (Verification) • สิ่งแวดล้อมของการเขียนโปรแกรม (Environment) • การเคลื่อนย้ายโปรแกรม (Portability) • ค่าใช้จ่าย (cost) 21

  22. Programming Environments เครื่องมือต่าง ๆ ที่ใช้ในการพัฒนาโปรแกรม (Tools used in software development) • Unix • ระบบปฏิบัติการที่มีเครื่องมือพัฒนาโปรแกรมมาพร้อม • Borland C++ • เครื่องมือที่ใช้ในการเขียน C และ C++ บน PC • Smalltalk • Language Processor/Environment • Microsoft Visual C++ • visual environment ที่มีขนาดใหญ่และซับซ้อน 22

  23. กระบวนการพัฒนาโปรแกรมกระบวนการพัฒนาโปรแกรม • การวิเคราะห์ความต้องการ (Needs analysis) • การออกแบบระบบ (System) • การพัฒนา (Development) • การนำไปใช้ (Implementation) • การบำรุงรักษา (Maintenance) 23

  24. Programming Domains • Scientific Application • Business Application • Artificial Intelligence • System Programming • Scripting Language • Special Purpose Language 24

  25. Implementation Methods • Compilation • แปล (translate) จากภาษาโปรแกรมชั้นสูงเป็นภาษาเครื่อง • ใช้เวลาแปลงนาน • ทำงาน (execute) เร็ว • Interpreter • ไม่ต้องทำการแปลก่อนเรียกใช้ • ทำงานช้า • Hybrid Implementation • cost ในการแปลไม่มาก • ทำงานเร็วปานกลาง 25

  26. Lexical analyzer Lexical units Syntax analyzer Parse tree Intermediate code generator Intermediate code Source program Source program Lexical analyzer Lexical units Syntax analyzer Parse tree Symbol table Intermediate code generator (and semantic analyzer) Optimization Intermediate code Input data Interpreter Code generator Machine language Computer Input data Results Results Pure Interpretation Compilation 26 Hybrid Implementation

  27. 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 Language Categories (Paradigms) 27

  28. รูปแสดง แผนผังประวัติ โดยสังเขปของกำเนิดภาษา โปรแกรมที่สำคัญ 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

  29. รายงาน • รูปแบบงาน : รายงานภาษาโปรแกรมคอมพิวเตอร์ (10%) • เลือกภาษาที่ต้องการ (เลือกก่อนมีสิทธ์ก่อน) • http://directory.google.com/Top/Computers/Programming/Languages/ • http://dir.lycos.com/Computers/Programming/Languages/ หรือ site อื่น ๆ ที่เกี่ยวข้อง • ตรวจสอบว่ามีคนเลือกไปแล้วหรือไม่ • ส่ง mail เพื่อบอกภาษาที่ต้องการทำพร้อมกับ URL ที่เกี่ยวข้องกับภาษานั้นมา ถ้าเห็นสมควรจะ mail ตอบกลับไป • ศึกษาภาษานั้นอย่างละเอียด • เขียนรายงานส่ง 1 ฉบับ ส่งมาในรูปของ PDF format ใช้ตัวอักษร Cordia New 16 29

  30. รายงาน (ต่อ) • รายละเอียด (อย่างน้อย) ที่ควรมีในรายงาน ประกอบด้วย • ประวัติความเป็นมา บอกความเป็นมา จุดกำเนิด บุคคลหรือหน่วยงานที่เกี่ยวข้อง พัฒนาการในช่วงแรก • จุดเด่นของภาษา คุณสมบัติที่สำคัญของภาษาที่เป็นจุดเด่น ทำให้แตกต่างจากภาษาอื่น • เป้าหมายในการใช้งาน ภาษานี้เหมาะ หรือสร้างขึ้น เพื่องานใดเป็นเฉพาะ • สถานภาพขณะนี้มีสถานภาพเป็นอย่างไร เลิกไปแล้ว ยังมีคนใช้อยู่ กลายพันธ์เป็นภาษาใหม่ไปแล้ว เป็นต้น • ทรัพยากร มีอะไรน่าสนใจให้ใช้ได้บ้าง ตัวอย่าง code หรือ compiler แหล่งข่าว mailing list หรือ chat room เป็นต้น • แหล่งอ้างอิงเอกสารอ้างอิงต่าง ๆ จาก web site ก็ได้ • กำหนดส่ง : 20ธันวาคม 2547 เวลา 16.00 น. 30

More Related