No Slide Title

Download Report

Transcript No Slide Title

วิชา การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Lec01 :: ประเภทของภาษาคอมพิวเตอร์
เอกสารสาหรับ การเรียนใน
สั ปดาห์ ที่ 1
โดย อ.นัฐพงศ์ ส่งเนี ยม
ภาคเรียนที่ 2/2551
[email protected]
http://www.siam2dev.com
ภาษาโปรแกรมคอมพิวเตอร์
 ภาษาโปรแกรม
( Programming Language ) คือ
ภาษาคอมพิวเตอร์ ท่ ใี ช้ ในการเขียนโปรแกรม
 ปั จจุบันมีภาษาโปรแกรมมากมาย การจะเลือกใช้ ภาษาใดนั น
้
ต้ องดูท่ จี ุดประสงค์ และความถนัดเป็ นหลัก
 ภาษาส่ วนมากจะมีโครงสร้ างที่คล้ ายกัน ดังนัน
้ ถ้ าเราเข้ าใจ
ปั ญหาและสามารถเขียนโครงสร้ างควบคุมได้ เราก็จะสามารถ
เขียนโปรแกรมโดยใช้ ภาษาได้ เกือบทุกภาษา
วิวฒ
ั นาการของภาษาคอมพิวเตอร์
 ภาษาคอมพิวเตอร์ มีการพัฒนามาเป็ นลาดับเช่ นเดียวกับเครื่ อง
คอมพิวเตอร์ โดยภาษายุคใหม่ ก็ย่ งิ มีความสะดวกในการอ่ าน
และการเขียนมากว่ ายุคแรก เพราะมีโครงสร้ างภาษาคล้ าย
ภาษาอังกฤษมากขึน้
ภาษาเครื่อง ( Machine Language )
 ภาษาแอสเซมบลี ( Assembly Language )
 ภาษาชัน
้ สูง ( High-level Language )
 ภาษาชัน
้ สูงมาก ( Very high-level Language )
 ภาษาธรรมชาติ ( Natural Language )

ภาษาเครื่อง ( Machine Language )




ภาษาเครื่อง ( Machine Language ) เป็ นภาษาที่เกิดในยุคแรกและเป็ น
ภาษาเดียวที่เครื่องคอมพิวเตอร์ เข้ าใจ
ภาษาเครื่องจะแทนข้ อมูลและคาสั่งด้ วยกลุ่มของเลขฐานสอง
เครื่องแต่ ละเครื่องจะมีภาษาเครื่องของตัวเอง ไม่ สามารถนาภาษาเครื่อง
ที่ใช้ กับเครื่องประเภทหนึ่งไปใช้ กับเครื่องประเภทอื่นได้
( Machine Dependent )
ภาษาเครื่องจะประกอบด้ วยเลขสองส่ วน 01011010 000100001111001110110010


โอเปอเรชันโคด ( Operation Code )
โอเปอแรนด์ ( Operands )
โอเปอเรชันโคด
โอเปอแรนด์
ภาษาเครื่ อง ( Machine Language )
01011010 000100001111001110110010
โอเปอเรชันโคด
โอเปอแรนด์
ภาษาแอสเซมบลี ( Assembly Language )

ภาษาแอสเซมบลี ( Assembly Language ) จะแทนข้ อมูลและคาสั่งด้ วย
สัญลักษณ์ ข้อความ ( Mnemonic Codes )







A ย่ อมาจาก Add หมายถึงบวก
S ย่ อมาจาก Subtract หมายถึงลบ
ST ย่ อมาจาก Store หมายถึงเก็บค่ าลงหน่ วยความจา
เช่ น
A
2,Y หมายถึงบวกค่ าของ Y กับค่ าใน R2 แล้ วเก็บใน R2
ST
2,W หมายถึงเก็บค่ าใน R2 ไว้ ใน W
ภาษาแอสเซมบลี 1 คาสั่งจะสามารถแปลเป็ นภาษาเครื่องโดยใช้ แอสเซม
เบลอร์ ( Assembler ) ได้ 1 คาสั่งเช่ นกัน ดังนัน้ ภาษาแอสเซมบลีจงึ เป็ นภาษา
ที่ขนึ ้ อยู่กับเครื่ อง
ผู้เขียนต้ องมีความรู้ เรื่ องฮาร์ ดแวร์ เป็ นอย่ างดี
ภาษาชั้นสูง ( High-level Language )



ภาษาชัน้ สูง ( High-level Language ) หรื อภาษารุ่ นที่ 3 ( 3GLs ) มีลักษณะคล้ าย
ภาษาอังกฤษทั่วไปทาให้ อ่านและเขียนง่ าย
ผู้เขียนไม่ จาเป็ นต้ องรู้ เรื่ องระบบฮาร์ ดแวร์ มากนัก
แต่ ละภาษาจะต้ องมีตัวแปลภาษาเฉพาะตัว เพื่อแปลงให้ เป็ นภาษาเครื่ อง



คอมไพเลอร์ ( Compiler )
 จะทาการแปลโปรแกรมทัง้ โปรแกรมให้ เป็ นเอ็กซ์ ซีคว
ิ ท์ โปรแกรม ( Execute Program )
 ตัวอย่ างเช่ นภาษาซี ( C ) ภาษาปาสคาล ( Pascal )
อินเตอร์ พรี เตอร์ ( Interpreter )
 จะทาการแปลโปรแกรมภาษาชัน
้ สูงทีละคาสั่งให้ เป็ นภาษาเครื่ องแล้ วทาการรันทันที
 ตัวอย่ างเช่ นภาษาเบสิก ( BASIC ) ภาษาเพิร์ล ( Perl )
เป็ นภาษาที่ไม่ ขนึ ้ อยู่กับเครื่ อง ( Machine Independent )
เปรียบเทียบความแตกต่างของตัวแปรภาษา
อินเทอร์ พรี เตอร์ (Interpreter)
แปลโปรแกรมทีละคาสั่งและ
ทางานตามคาสั่งนัน้ ทันที
- ใช้ เนือ้ ที่ในหน่ วยความจาน้ อย
- ถ้ าโปรแกรมมีการทางานแบบวน
ซา้ Loop จะต้ องแปลคาสั่งซา้
แล้ วซา้ อีกทาให้ การทางานช้ า
-
คอมไพเลอร์ (Compiler)
แปลทัง้ โปรแกรมแล้ วจึงทางานตาม
คาสั่งในโปรแกรมนัน้
- ใช้ เนือ
้ ที่ในหน่ วยความจามาก
- ถ้ าโปรแกรมมีการทางานแบบวนซา้
(Loop) เครื่ องจะนาออบเจ็คโปรแกรม
ไปใช้ งานเลยโดยไม่ ต้องแปลซา้ ทาให้
ทางานได้ เร็วกว่ า
-
รูปแบบของคาสั่งที่มอี ยู่ในภาษาโปรแกรม



การประกาศชนิดข้ อมูลตัวแปร
คาสั่งกาหนดค่ าข้ อมูลให้ กับตัวแปร
คาสั่งควบคุม



คาสั่งการประมวลผล



คาสั่งเงื่อนไข ( IF-THEN-ELSE )
คาสั่งวนซา้ ( DO WHILE , DO UNTIL )
คาสั่งการคานวณทางคณิตศาสคร์
คาสั่งในการแสดงผลข้ อมูล
คาสั่งจบการทางาน
ตัวอย่างของภาษาชั้นสูง

ฟอร์ แทรน ( FORTRAN , FORmula TRANslator )





พัฒนาในปี 1954 โดย IBM
เหมาะกับงานด้ านวิทยาศาสตร์ วิศวกรรมศาสตร์ และคณิตศาสตร์
คาสั่งจะง่ ายและสัน้
ไม่ เหมาะกับงานธุรกิจที่ต้องสร้ างรายงานมากๆ
โคบอล ( COBOL , COmmon Business-Oriented Language )




พัฒนาในปี 1959 โดยตัวแทนจากหน่ วยงานต่ างๆ ( CODASYL )
เหมาะกับงานด้ านธุรกิจที่มีข้อมูลมากๆ หรื อออกรายงานที่ซับซ้ อน
คาสั่งใกล้ เคียงกับภาษาอังกฤษมากทาให้ เข้ าใจง่ าย
โปรแกรมจะค่ อนข้ างยาวและเยิ่นเย้ อ ไม่ เหมาะกับงานที่ต้องมีการคานวณมาก
ตัวอย่างของภาษาชั้นสูง ( ต่อ )

เบสิก ( BASIC , Beginner’s All-purpose Symbolic Instruction Code )





พัฒนาในปี 1965 โดย John Kemeny และ Thomas Kurtz แห่ ง Dartmouth Uni.
เหมาะกับผู้เริ่มต้ นหัดเขียนโปรแกรม
ง่ ายต่ อการเรียนรู้
ไม่ เหมาะในการใช้ พฒ
ั นางานที่มีขนาดใหญ่
ปาสคาล ( PASCAL , Blaise Pascal )

พัฒนาจากภาษา ALGOL-60 โดย Dr. Niklaus Wirth จากซูริค สวิสเซอร์ แลนด์
เหมาะกับผู้เริ่มต้ นเขียนโปรแกรมที่มีโครงสร้ าง
เป็ นภาษาที่มีโครงสร้ างดีมาก

ไม่ เหมาะกับงานด้ านธุรกิจเพราะยังจัดการกับข้ อมูลปริมาณมากๆ ได้ ไม่ ดี


ตัวอย่างของภาษาชั้นสูง ( ต่อ )

ซี ( C )
พัฒนาในปี 1972 โดย Dennis Ritchie แห่ งศูนย์ วจิ ัยเบลล์ ( Bell )
 เหมาะกับงานทั่วไป
 มีประสิทธิภาพในการทางานใกล้ เคียงกับภาษาแอสเซมบลี
 ยากที่จะเรี ยนรู้ เพราะคาสั่งไม่ มร
ี ูปแบบที่แน่ นอน

ภาษาชั้นสูงมาก ( Very high-level Language )

ภาษาชัน้ สูงมาก ( Very high-level Language ) หรื อภาษารุ่ นที่ 4 ( 4GLs ) มี
ลักษณะคล้ ายภาษาพูดของมนุษย์



ส่ วนประกอบของภาษา 4GLs




เป็ นภาษาแบบ Nonprocedural คือเวลาเขียนโปรแกรมผู้เขียน เพียงบอกว่ าต้ องการอะไร (
What ) แต่ ไม่ ต้องบอกว่ าทาอย่ างไร ( How )
ส่ วนมาก 4GLs จะควบคู่กับระบบฐานข้ อมูล
เครื่องมือช่ วยสร้ างรายงาน ( Report Generators )
ภาษาข่ วยค้ นหาข้ อมูล ( Query Languages )
เครื่องมือช่ วยสร้ างโปรแกรม ( Application Generators )
ตัวอย่ างเช่ นภาษา SQL
ภาษาธรรมชาติ ( Natural Language )

ภาษาธรรมชาติ ( Natural Language ) หรื อภาษารุ่ นที่ 5 ( 5GLs ) มีลักษณะ
เป็ นภาษาพูดของมนุษย์




งานที่เหมาะกับภาษาประเภทนี ้ มักยุ่งเกี่ยวกับข้ อมูลเป็ นจานวนมาก




เป็ นภาษาแบบ Nonprocedural
ถูกพัฒนาขึน้ มาจากเทคโนโลยีด้านระบบผู้เชี่ยวชาญ ( Expert System ) ซึ่งเป็ นงานที่อยู่ใน
สาขาปั ญญาประดิษฐ์ ( Artificial Intelligence )
จาเป็ นต้ องมีการรวบรวมข้ อมูลเพื่อสร้ างเป็ นฐานความรู้ ( Knowledge Base )
การแพทย์
การพยากรณ์ อากาศ
การวิเคราะห์ ทางเคมี
ตัวอย่ างเช่ น ภาษา LISP , PROLOG
ภาษาแบบเชิงวัตถุ ( Object-Oriented Languages )



การเขียนโปรแกรมแบบเชิงวัตถุ ( OOP , Object-Oriented Programming ) เป็ น
แนวคิดที่จะสร้ างวัตถุ ( Object ) แต่ ละชิน้ ให้ ทางานเฉพาะอย่ างและสามารถ
นาออบเจ็กต์ ย่อยๆเหล่ านัน้ มารวมกันเป็ นโปรแกรมขนาดใหญ่ ต่อไป
ออบเจ็กต์ แต่ ละชิน้ ผู้ใช้ ไม่ จาเป็ นต้ องสร้ างเอง เพียงแต่ ใช้ ให้ เป็ นก็พอ
คุณสมบัตทิ ่ สี าคัญของ OOP





รียูส ( Reuse ) คือการนาออบเจ็กต์ ท่ เี ขียนขึน้ กลับมาใช้ ใหม่
เอนเคปซูเลชัน ( Encapsulation ) เป็ นการซ่ อนคุณสมบัตบิ างอย่ างไว้ ภายใน
อินเฮริท ( Inherit ) เป็ นการสืบทอดคุณสมบัตบิ างอย่ างของบรรพบุรุษ
โพลีมอร์ ฟิซึม ( Polymorphism ) คือคาสั่งบางคาสั่งของออบเจ็กต์ มีการใช้ อาร์ กรูเมนต์
หลายรูปแบบ
ตัวอย่ างเช่ น ภาษา Java , C++
ภาษาแบบวิชวล ( Visual Languages )
 ภาษาแบบวิชวล
( Visual Languages ) เป็ นภาษาที่เขียนได้ ง่าย
ยิ่งกว่ าภาษายุคที่ 4
ใช้ แนวคิดของ OOP แต่ ไม่ เน้ นที่การเขียนโปรแกรม
 เน้ นการสร้ างงานบนวินโดว์ ท่ ม
ี ีลักษณะเป็ น GUI
 ออบเจ็กต์ ของ Visual Languages นีอ
้ าจเรียกว่ า Components

 ปุ่ มกด
( Button )
 แถบเลื่อน ( Scroll Bar )
 เมนู ( Menu )

ตัวอย่ างเช่ น ภาษา Delphi , Visual Basic