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

Post on 05-Feb-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ภาษาโปรแกรม

Programming Language

Introduction

Course outline

ผสอน : ศรารตน วรรณแจม

email : Sararat.wan@gmail.com

หนงสอ

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

top related