programming language
Download
Skip this Video
Download Presentation
ภาษาโปรแกรม Programming Language

Loading in 2 Seconds...

play fullscreen
1 / 30

ภาษาโปรแกรม Programming Language - PowerPoint PPT Presentation


  • 86 Views
  • Uploaded on

ภาษาโปรแกรม 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ภาษาโปรแกรม Programming Language' - zachery-valentine


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
course outline
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

slide3
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%

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

4

von neumann architecture
Von Neumann Architecture

คอมพิวเตอร์ในอดีตจนถึงปัจจุบัน ถูกพัฒนาโดยอ้างอิง

แนวคิดดังนี้

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

5

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

6

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

7

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

8

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

9

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

11

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

12

slide13
กำเนิดมาพร้อมกับคอมพิวเตอร์กำเนิดมาพร้อมกับคอมพิวเตอร์

เป็นภาษาที่เครื่องเข้าใจได้โดยตรง

เป็นที่มาของคำว่า codeซึ่งปัจจุบันหมายถึง ข้อความที่ประกอบขึ้นเป็นโปรแกรมในภาษาใด ๆ (program text)

เป็นภาษาระดับต่ำ

มนุษย์ทำความเข้าใจได้ยาก

ทำงานเร็ว

ตัวอย่างบางส่วนของโค้ด

00000010101111001010

00000010111111001000

00000011001110101000

บวกเลขในตำแหน่งที่ 10 กับเลขในตำแหน่งที่ 11 แล้วเก็บผลลัพธ์ไว้ในตำแหน่งที่ 12

ภาษาเครื่อง

13

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

slide15

Assembly

code

Assembler

Object code

15

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

16

slide17

ภาษาระดับสูง

แบ่งย่อยเป็น 3 ประเภท คือ

  • ภาษายุคที่ 3 (3GL- Fourth General Language)
  • ภาษายุคที่ 4 (4GL- Fourth General Language)
  • ภาษายุคที่ 5 (5GL- Fourth General Language)

17

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

FORTAN C

COBOL C++

BASIC Java

Pascal ActiveX

18

slide19

ภาษายุคที่ 4

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

Visual Basic (VB)

VisualAge

Authoring environments

19

slide20

ภาษายุคที่ 5

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

20

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

21

programming environments
Programming Environments

เครื่องมือต่าง ๆ ที่ใช้ในการพัฒนาโปรแกรม

(Tools used in software development)

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

22

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

23

programming domains
Programming Domains
  • Scientific Application
  • Business Application
  • Artificial Intelligence
  • System Programming
  • Scripting Language
  • Special Purpose Language

24

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

25

slide26

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

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

Language Categories (Paradigms)

27

slide28

รูปแสดง

แผนผังประวัติ

โดยสังเขปของกำเนิดภาษา

โปรแกรมที่สำคัญ

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

slide29
รายงาน
  • รูปแบบงาน : รายงานภาษาโปรแกรมคอมพิวเตอร์ (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

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

30

ad