ภาษาคอมพิวเตอร์sci.udru.ac.th/websci/download/com/rewadee/com_program/... ·...
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)
ภาษาคอมพวเตอรยคท 2 (Second generation language)ภาษาแอศเซมบล(Assembly) เรยกอกอยางวา “ภาษาสญลกษณ”
เปนภาษาระดบต าใชรหสเปนค าแทนค าสงภาษาเครอง เปนค าสงสน ๆ ทจดจ าไดงาย
เรยกวา นวมอนกโคด(mnemonic code) โปรแกรมภาษาแอสเซมบล ตองท าการแปลดวยโปรแกรมแปลภาษา
ทเรยกวา แอสเซมเบลอ(Assembler) ซงจะแปลโปรแกรมตนฉบบ(Source code)ทเขยนดวยภาษาแอสเซมบล ใหเปน ภาษาเครอง
ภาษาคอมพวเตอรยคท 3 (Third generation language)
เรยกวา ภาษาชนสง(High level language) ใชรปแบบค าภาษาองกฤษแทนรหสค าสงตาง ๆ และสามารถใชนพจนทาง
คณตศาสตรได เปนภาษาแบบโพรซเยอร (Procedural Language) โปรแกรมทเขยนดวยภาษาระดบสง สามารถท างานบนเครองคอมพวเตอรตาง
ชนดกนได โปรแกรมทพฒนาจากภาษาระดบสง ตองท าการแปลค าสงโปรแกรมตนฉบบ
(Source code) ทเขยนดวยภาษาระดบสงใหเปนภาษาเครอง ตวอยางภาษาระดบสงเชน ภาษาเบสก ภาษาปาสคาล ภาษาซ ภาษาโค
บอล ภาษาฟอรแทรน เปนตน
ภาษาคอมพวเตอรยคท 4 (Fourth generation language) เรยกวา ภาษาระดบสงมาก (very-high level language)
เปนภาษาเหมาะกบงานเฉพาะดานและใชงานงายกวา 3GL
โปรแกรมเมอรสามารถใช visual environment ไดโดยใชเครองมอทางดานกราฟก ท าใหสราง Prototype หรอ GUIของโปรแกรมไดรวดเรว ไดโปรแกรมทมความสมบรณและสวยงามมากขน
สวนใหญเปนโปรแกรมทรวบรวมการจดการฐานขอมลดวย
อาศยหลกการแบบ nonprocedural language
ภาษาทอยในกลมน ไดแก Visual Basic (VB) , Visual C# ,SQL เปนตน
ภาษาคอมพวเตอรยคท 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)
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# เปนตน