ภาษาคอมพิวเตอร์sci.udru.ac.th/websci/download/com/rewadee/com_program/... ·...

32
บทที2 ภาษาคอมพิวเตอร์ (Computer Programming Language) อ.เรวดี พิพัฒน์สูงเนิน สาขาวิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยราชภัฏอุดรธานี

Upload: hoangtruc

Post on 25-Jun-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

บทท 2ภาษาคอมพวเตอร

(Computer Programming Language)

อ.เรวด พพฒนสงเนน สาขาวชาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ คณะวทยาศาสตร มหาวทยาลยราชภฏอดรธาน

ภาษาคอมพวเตอรหมายถง สญลกษณทผคดพฒนาภาษาก าหนดขนมา เพอใชแทนการสอสาร / สงงาน ระหวางมนษยกบเครองคอมพวเตอรและอปกรณตอพวงอน ๆ

การพฒนาภาษาคอมพวเตอรเรมตนจากการเขยนค าสงดวยรปแบบเลขฐานสอง และปจจบนพฒนามาใชค าสงทเปนขอความภาษาองกฤษ

ประเภทของภาษาคอมพวเตอรแบงไดเปน 5 ประเภทภาษาคอมพวเตอรยคท 1 (First generation language)ภาษาคอมพวเตอรยคท 2 (second generation language)ภาษาคอมพวเตอรยคท 3 (third generation language)ภาษาคอมพวเตอรยคท 4 (Fourth generation language)ภาษาคอมพวเตอรยคท 5 (Fifth generation language)

ภาษาคอมพวเตอรยคท 1 (First generation language) เปนภาษาระดบต า เรยกวา ภาษาเครอง (Machine language) ใชค าสงทประกอบดวยเลขฐานสอง(Binary Digit หรอ bit) เชน

01010110 00011001 ใชเลข 0 และ 1 เปนสญลกษณแทนสญญาณไฟปดและเปด ตามล าดบภาษาเครองเปนภาษาทคอมพวเตอรเขาใจไดโดยตรง จงไมตองมตวแปล

ภาษา โปรแกรมทเขยนดวยภาษาเครอง จะใชไดกบเครองคอมพวเตอรทใช

พฒนาโปรแกรมเทานน (machine -dependent)

ภาษาเครอง(Machine Language)

ภาษาคอมพวเตอรยคท 2 (Second generation language)ภาษาแอศเซมบล(Assembly) เรยกอกอยางวา “ภาษาสญลกษณ”

เปนภาษาระดบต าใชรหสเปนค าแทนค าสงภาษาเครอง เปนค าสงสน ๆ ทจดจ าไดงาย

เรยกวา นวมอนกโคด(mnemonic code) โปรแกรมภาษาแอสเซมบล ตองท าการแปลดวยโปรแกรมแปลภาษา

ทเรยกวา แอสเซมเบลอ(Assembler) ซงจะแปลโปรแกรมตนฉบบ(Source code)ทเขยนดวยภาษาแอสเซมบล ใหเปน ภาษาเครอง

ภาษาแอสเซมบล(Assembly Language)

ภาษาคอมพวเตอรยคท 3 (Third generation language)

เรยกวา ภาษาชนสง(High level language) ใชรปแบบค าภาษาองกฤษแทนรหสค าสงตาง ๆ และสามารถใชนพจนทาง

คณตศาสตรได เปนภาษาแบบโพรซเยอร (Procedural Language) โปรแกรมทเขยนดวยภาษาระดบสง สามารถท างานบนเครองคอมพวเตอรตาง

ชนดกนได โปรแกรมทพฒนาจากภาษาระดบสง ตองท าการแปลค าสงโปรแกรมตนฉบบ

(Source code) ทเขยนดวยภาษาระดบสงใหเปนภาษาเครอง ตวอยางภาษาระดบสงเชน ภาษาเบสก ภาษาปาสคาล ภาษาซ ภาษาโค

บอล ภาษาฟอรแทรน เปนตน

ภาษาระดบสง(High-Level Language)

ภาษาคอมพวเตอรยคท 4 (Fourth generation language) เรยกวา ภาษาระดบสงมาก (very-high level language)

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

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

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

อาศยหลกการแบบ nonprocedural language

ภาษาทอยในกลมน ไดแก Visual Basic (VB) , Visual C# ,SQL เปนตน

ภาษาระดบสงมาก(Very High-Level Language)

ภาษาคอมพวเตอรยคท 5 (Fifth generation language)

เปนภาษาทใกลเคยงกบภาษาของมนษยมากทสดหรอทเรยกวาภาษาธรรมชาต (natural language)

ท างานโดยอาศยระบบฐานความร (knowledge base system)เพอชวยในการแปลความหมายของค าสง ระบบคดและมสวนรวมในการตดสนใจของผใช

นยมใชกบคอมพวเตอรทเกยวของกบสาขาปญญาประดษฐ (AI - Artificial Intelligence)

ตวอยางเชน การพฒนาความรและการจ าในหนยนต การสงงานโปรแกรมดวยเสยง

ตวอยางภาษาคอมพวเตอร ภาษาฟอรแทรน (FORTRAN : FORmular TRANslator) ใชส าหรบงานดานคณตศาสตร วทยาศาสตร และ วศวกรรมศาสตร พฒนาขนโดย บรษท ไอบเอม(IBM)

ภาษาโคบอล (COBOL : COmmon Business Oriented Language) ใชส าหรบงานดานธรกจ เชน การจดเกบ เรยกใชและประมวลผลดานบญช

, คลงสนคา , การรบและจายเงน เปนตน พฒนาโดย สถาบนมาตรฐานแหงชาตของสหรฐอเมรกา รวมมอกบ

บรษทผผลตเครองคอมพวเตอรหลายบรษท

ตวอยางภาษาคอมพวเตอร ภาษาเบสก (BASIC : Beginner’s All-purpose Symbolic

Instruction Code) ใชงานไดหลายดาน ทงดานธรกจและงานอนๆ พฒนาโดย สถาบนมาตรฐานแหงชาตของสหรฐอเมรกา(American National

Standard Institute : ANSI)

ภาษาปาสคาล (PASCAL : ชอของ Blaise Pascal) ใชในงานดานการค านวณทวไป ทงงานดานวทยาศาสตร ธรกจ หรอวศวกรรม พฒนาโดย นายนคลอส เวรธ(Niklaus Wirth) แหง สถาบนเทคโนโลยของ

รฐ ประเทศสวสเซอรแลนด

ตวอยางภาษาคอมพวเตอรภาษาซ (C)ใชส าหรบงานดานคณตศาสตร วทยาศาสตร และ วศวกรรมศาสตร พฒนาโดย นายเดนนส รชช(Dennis Ritchie) สนบสนนโดยบรษท เอทแอนดท (AT&T)

ภาษาเอดา (ADA : ชอของ Augusta Ada )ใชส าหรบงานดานทหารสนบสนนโดยกระทรวงกลาโหมประเทศสหรฐอเมรกา

ตวอยางภาษาคอมพวเตอรภาษาอลกอ (ALGOL : ALGOrithmic Language)ใชส าหรบงานดานวทยาศาสตร

ถกพฒนาตอใหเปนภาษา PL/1 และ PASCAL

ภาษาพแอลวน (PL/1)ใชส าหรบงานทวไป ทงงานธรกจและงานการค านวณ

ใชกบเครองคอมพวเตอรของบรษท ไอบเอม

ตวอยางภาษาคอมพวเตอรภาษาโลโก (LOGO)นยมใชในโรงเรยน เพอสอนทกษะการแกปญหาใหกบนกเรยน

ภาษาอารพจ (RPG : Report Program Generator)ใชส าหรบงานธรกจ

ตวอยางภาษาคอมพวเตอรภาษาโพรลอก(PLOLOG : PROgramming LOGic)นยมใชในงานดานปญญาประดษฐ(AI : Artificial

Intelligent )

ภาษาลป (LISP : LISt Processing)นยมใชในงานดานปญญาประดษฐ(AI : Artificial

Intelligent )

ตวแปลภาษา(Translator Program)หมายถง โปรแกรมทท าหนาทแปลโปรแกรมตนฉบบ

(Source code) ทเขยนขน ใหเปนภาษาเครองทเปนเลขฐานสอง เพอใหเครองคอมพวเตอรท างานตามทตองการ

ประเภทของตวแปลภาษาโปรแกรมแปลภาษาแบบแอสเซมเบลอ (Assembler)โปรแกรมแปลภาษาแบบคอมไพเลอร(Compiler)โปรแกรมแปลภาษาแบบอนเทอรพรเทอร(Interpreter)

Assemblerแปลเฉพาะภาษาแอสเซมบลใหเปนภาษาเครองเทานน

Assembler

Assembly

code

Object code

Compilerแปลโปรแกรมตนฉบบทงโปรแกรม ทเขยนจากภาษาระดบสง ให

เปนออบเจกต(Object Code)Object code สามารถน าไปใชไดทนทระหวางการแปล หากพบขอผดพลาดทเกดจากการเขยนค าสง จะ

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

และแปลใหมอกครงตวอยางภาษาทใช compiler ไดแก FORTRAN , PASCAL ,

C , C++ เปนตน

Compiler

23

….

writeln(‘a’);

writeln(‘b’);

writeln(‘c’);

….

Compiler object

file

Linker

….

0100100

0100101

0100101

.....

a

b

c

Source

.Exe file

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

แลวจงท างานตามค าสงภายหลง เมอท าการแปลผลแลว การใชงานโปรแกรม

ครงตอไปไมตองแปลผลใหมอก ขอเสย หาขอผดพลาดไดยาก ตองน าโปรแกรมซอรดโคดมาแปลใหมเมอ

เปลยนระบบปฏบตการ เนองจากคอมไพเลอรเปนตวแปลภาษาทขนอยกบแพลตฟอรม (Platform Specific)

Interpreterแปลโปรแกรมตนฉบบทงโปรแกรม ทเขยนจากภาษาระดบสง ให

เปนภาษาเครองแปล Source code ทละค าสง ใหเปน Object codeถาพบขอผดพลาดจะหยดท างาน และใหด าเนนการแกไขค าสงท

ผด จงเรมประมวลผลใหมตวอยางภาษาทใช Interpreter ไดแก ภาษา BASIC เปนตน

Interpreter

….

writeln(‘a’);

writeln(‘b’);

writeln(‘c’);

….

Inter-

preter

0100100

0100101

0100110

a

b

c

Source

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

ได ภาษาทใชอนเตอรพรตเตอรสามารถ

ท างานขามแพลตฟอรมได เนองจากขนตอนการแปลภาษาท าในชวงการรนโปรแกรม

ขอเสย ท างานไดชากวาคอมไพเลอร

แนวคดของการเขยนโปรแกรมแบงเปน 2 แนวคด ไดแก การเขยนโปรแกรมเชงโครงสราง (Structured

Programming)การเขยนโปรแกรมเชงวตถ (Object Oriented

Programming)

การเขยนโปรแกรมเชงโครงสรางแนวคดในการเขยนโปรแกรมเชงโครงสราง คอ แบงงานออกเปนสวนยอย ๆ แตละสวนเขยนเปน Procedure หรอ Function

มโครงสรางชดเจน มทางเขา-ออกทางเดยวมกฎเกณฑในการใชตวแปรคอนเครงครดภาษาทใชสนบสนนเทคนคการเขยนแบบมโครงสราง ไดแก

Fortran , Cobol , Basic , C , Pascal เปนตน

การเขยนโปรแกรมเชงวตถการโปรแกรมเชงวตถ(Object Oriented

Programming : OOP) คอ กระบวนการทโปรแกรมถกจดการใหอยในรปของวตถ(Objects) ในแตละวตถประกอบดวย คณลกษณะ(Attribute) และเมธอด(method) ซงเปนฟงกชนทเขยนขนเพอจดการขอมลของวตถนนๆ

การเขยนโปรแกรมเชงวตถคณสมบตทส าคญของ OOP คอ การซอนขอมล

(Encapsulation) , การสบทอด(Inheritance) และการพองรป(Polymorphism)

ภาษาคอมพวเตอรทใชเขยน OOP ไดแก ภาษาจาวา(JAVA) , ภาษา C++ , Smalltalk , C# เปนตน

เชงโครงสราง VS เชงวตถการเขยนโปรแกรมเชงโครงสรางเนนการแปลงสงทมอยจรงใหอยในกฏเกณฑของโปรแกรมภาษา การเขยนโปรแกรมเชงวตถนนเนนการแปลงใหโปรแกรมภาษาอยในรปแบบของสงทมอยจรง