ภาษาโปรแกรม programming language...ภาษาโปรแกรม เคร...

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

Upload: others

Post on 05-Feb-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาโปรแกรม

Programming Language

Introduction

Page 2: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

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

Page 3: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

เนอหาและการวดผล

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%

Page 4: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาโปรแกรม เครองมอ (tool) ทสงใหคอมพวเตอรท างานตามทตองการ

วธการหรอเครองมอทใชในการสอสารระหวางโปรแกรมเมอร

เครองมอทใชส าหรบแสดงการออกแบบขนตอนการท างานในระดบสง (high-level designs)

สญลกษณทส าหรบวธการแกปญหา (notation for algorithms)

วธการแสดงความสมพนธระหวางแนวคด

เครองมอส าหรบการทดลอง

วธการหรอเครองมอทใชควบคมอปกรณทางคอมพวเตอร 4

Page 5: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

Von Neumann Architecture คอมพวเตอรในอดตจนถงปจจบน ถกพฒนาโดยอางอง

แนวคดดงน

คอมพวเตอรประกอบดวยสวนส าคญ 3 สวน คอ หนวยความจ า, หนวยควบคม และหนวยประมวลผล

การตดตอเพอสงผานขอมลระหวางหนวยความจ าและ หนวยประมวลผล สามารถท าไดครงละ 1 หนวยขอมล

ขอมลและค าสงทใชการประมวลผลจะถกเกบในหนวย ความจ า ซงถกระบต าแหนงดวยต าแหนงของหนวยความจ า (Memory Address)

5

Page 6: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาโปรแกรม

ภาษาทใชตดตอกบคอมพวเตอร เพอใหคอมพวเตอรท างานตามทตองการ

ออกแบบและสรางขนใหสามารถท างานไดกบคอมพวเตอรทมสถาปตยกรรมแบบ Von Neumann

ตองท างานทละค าสงเรยงกนอยางเปนล าดบ

ตองมการนยามตวแปร เพอใชในการอางองถงต าแหนง ขอมลในหนวยความจ า

ภาษาในกลมน เรยกวา imperative หรอ conventional language : COBOL,FORTRAN,Pascal, C

6

Page 7: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ท าไมตองศกษาภาษาโปรแกรม

พฒนาความรเรองโครงสรางทส าคญของภาษาโปรแกรม

พฒนาความรความเขาใจในภาษาโปรแกรมทเลอกใช

เลอกภาษาโปรแกรมทเหมาะสมกบงานได

เรยนรภาษาโปรแกรมใหมไดงายขน

เปนพนฐานในการสรางภาษาโปรแกรมใหมได

7

Page 8: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

สงทมอทธผลตอการพฒนาภาษาโปรแกรม

เครองคอมพวเตอรและโปรแกรมควบคมระบบ(Computer Hardware

and Operating System)

การประยกตใชคอมพวเตอร (Application)

วธการเขยนโปรแกรม (Programming Methods)

วธการน าไปใช (Implementation Methods)

การศกษาทฤษฎ (Theoretical Study)

ความเปนมาตราฐาน (Standardization)

8

Page 9: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ประวตของภาษาโปรแกรม ยคแรก : ควบคมดวย Hardwired ซงเปนการควบคมการ

ท างานของฮารดแวรโดยใชฮารดแวร ท าใหไมมความยดหยนในการใชงาน เปนการสรางระบบคอมพวเตอรเพอใชงานเฉพาะอยาง

แนวคด : คอมพวเตอรไมควรเปนอปกรณท างานเฉพาะอยาง ควรจะท างานตามทผใชตองการ โดยใชชดของค าสงในการควบคมการท างาน

เกดการพฒนาภาษาโปรแกรมตาง ๆ ขนพรอม ๆ กบการพฒนาระบบคอมพวเตอร (Hardware)

9

Page 10: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

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

10

Page 11: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ยคของภาษาโปรแกรม

ยคท 1 : ภาษาเครอง (Machine Language)

ยคท 2 : ภาษาสญลกษณ (Symbolic Language)

ยคท 3 : ภาษาระดบสง (High Level Language)

11

Page 12: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาโปรแกรม

Higher level แบงออกตามระดบของการอานเขาใจงาย (readability) เมอเทยบ

กบระดบของการอานเขาใจในขอความภาษาองกฤษ

แบงตามระดบของการไมขนอยกบเครอง (machine independence)

General purpose ความสามารถในการประยกตของภาษาโปรแกรมกบงานหรอปญหา

ดานตาง ๆ ซงหลากหลาย

12

Page 13: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาเครอง

ก าเนดมาพรอมกบคอมพวเตอร

เปนภาษาทเครองเขาใจได โดยตรง

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

เปนภาษาระดบต า

มนษยท าความเขาใจไดยาก

ท างานเรว

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

00000010101111001010

00000010111111001000

00000011001110101000

บวกเลขในต าแหนงท 10 กบเลขในต าแหนงท 11 แลวเกบผลลพธไวในต าแหนงท 12

13

Page 14: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาสญลกษณ

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

Page 15: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

Assembler

Assembly

code

Object code

15

Page 16: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาระดบสง

ใชสญลกษณทคนเคยและอานเขาใจงาย

สามารถน าโปรแกรมไปรนบนเครองทตางกนโดยท าการ แกไขโคดเลกนอยหรอไมตองแกไขเลย (portability / machine independence)

มชดค าสงโปรแกรมใหใช (program libraries)

มการตรวจสอบขอผดพลาด (error) ในชวงทท าการเขยน (implementation)

16

Page 17: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาระดบสง

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

ภาษายคท 3 (3GL- Fourth General Language)

ภาษายคท 4 (4GL- Fourth General Language)

ภาษายคท 5 (5GL- Fourth General Language)

17

Page 18: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษายคท 3

เปนภาษาแรกทมใชค าสงคลายกบประโยคในภาษาองกฤษ ท าใหใชงานงายกวาภาษาในยคกอน

มคณสมบต portable ท าใหสามารถน า object code ทสราง (compile) จากระบบหนงไปใชระบบทตางกนได

ภาษาทอยในกลมน ไดแก

FORTAN C COBOL C++ BASIC Java Pascal ActiveX

18

Page 19: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษายคท 4 เปนภาษาเหมาะกบงานเฉพาะดานและใชงานงายกวา 3GL

ใชลกษณะ text-based environment (คลาย 3GL)

โปรแกรมเมอรสามารถใช visual environment ไดโดยใชเครองมอทางดานกราฟก ท าใหสราง Prototype หรอ GUIของโปรแกรมไดรวดเรว

สวนใหญเปนโปรแกรมทรวบรวมการจดการฐานขอมลดวย

ภาษาทอยในกลมน ไดแก

Visual Basic (VB) VisualAge Authoring environments

19

Page 20: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษายคท 5

เปนภาษาทรวมเอาปญญาประดษฐ (Artificial Intelligence) และระบบผเชยวชาญ (Expert Systems) มาใชในการสรางโปรแกรม ซงท าไดยาก

ระบบจะสนใจทจะคดและมสวนรวมในการตดสนใจของผใช

อาจเปนการหาค าตอบทเหมาะส าหรบค าถามทผใชปอน และค าตอบทไดจะเหมอนกบเปนค าตอบจากมนษย

ยงเปนทถกเถยงกนในหมโปรแกรมเมอรวามอยหรอไม

20

Page 21: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

ภาษาโปรแกรมทด

ความชดเจนและงายของการนยามภาษา (Concept)

ความชดเจนของรปแบบโปรแกรม (Program Syntax)

ความเปนธรรมชาตส าหรบการประยกตใช (Application)

ความงายของการตรวจสอบโปรแกรม (Verification)

สงแวดลอมของการเขยนโปรแกรม (Environment)

การเคลอนยายโปรแกรม (Portability)

คาใชจาย (cost)

21

Page 22: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

Programming Environments เครองมอตาง ๆ ทใชในการพฒนาโปรแกรม

(Tools used in software development)

Unix ระบบปฏบตการทมเครองมอพฒนาโปรแกรมมาพรอม

Borland C++ เครองมอทใชในการเขยน C และ C++ บน PC

Smalltalk Language Processor/Environment

Microsoft Visual C++ visual environment ทมขนาดใหญและซบซอน

22

Page 23: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

กระบวนการพฒนาโปรแกรม

การวเคราะหความตองการ (Needs analysis)

การออกแบบระบบ (System)

การพฒนา (Development)

การน าไปใช (Implementation)

การบ ารงรกษา (Maintenance)

23

Page 24: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

Programming Domains

Scientific Application

Business Application

Artificial Intelligence

System Programming

Scripting Language

Special Purpose Language

24

Page 25: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

Implementation Methods

Compilation แปล (translate) จากภาษาโปรแกรมชนสงเปนภาษาเครอง

ใชเวลาแปลงนาน

ท างาน (execute) เรว

Interpreter ไมตองท าการแปลกอนเรยกใช

ท างานชา

Hybrid Implementation cost ในการแปลไมมาก

ท างานเรวปานกลาง 25

Page 26: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

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

Page 27: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

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

Page 28: ภาษาโปรแกรม Programming Language...ภาษาโปรแกรม เคร องม อ (tool) ท ส งให คอมพ วเตอร ท างานตามท

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