ภาษาคอมพิวเตอร์ อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tko@webmail.npru.ac.th)
เนื้อหาที่สนใจ ภาษาคอมพิวเตอร์ ระดับของภาษาคอมพิวเตอร์ ยุคของภาษาคอมพิวเตอร์ กระบวนทัศน์ในการเขียนโปรแกรม การเขียนโค้ดโปรแกรมด้วยภาษา C การแปลภาษา C ด้วย Compiler การนำโปรแกรม Executable Files ไปใช้งาน การจัดเก็บรวบรวมโค้ดไฟล์ไลบรารี (Libraries) http://1.bp.blogspot.com/-tw1caa8lBus/Vphe8RV3rwI/AAAAAAAAAKM/wAhp-ds7iQM/s1600/8.png
ภาษาคอมพิวเตอร์ ภาษาคอมพิวเตอร์ หมายถึง ภาษาที่ใช้ติดต่อสื่อสารกับคอมพิวเตอร์ ภาษาเครื่อง ( Machine Language) ถือเป็นภาษาคอมพิวเตอร์ที่ติดต่อกับคอมพิวเตอร์โดยตรงได้ โดยไม่ต้องผ่านการแปลภาษา ภาษาเครื่องเป็นเลขฐานสอง (Binary Code) ซึ่งคำสั่งประกอบด้วยเลข 0 หรือ 1 ต่อกัน คำสั่งในภาษาเครื่องจะประกอบด้วย โอเปอเรชันโค้ด (Operation Code) โอเปอแรนด์ (Operands) http://kanthika2538.weebly.com/361836403588360736373656-1-36163634362536343648358836193639365636293591--machine-language.html
ภาษาคอมพิวเตอร์ คอมพิวเตอร์สามารถทำงานตามคำสั่งที่เขียนจากภาษาคอมพิวเตอร์ได้ แต่ระดับความเข้าใจภาษาเครื่องของมนุษย์ต่ำ สร้างภาษาคอมพิวเตอร์ที่มนุษย์เข้าใจง่าย เรียกว่า “ภาษาคอมพิวเตอร์ระดับสูง” ใช้การแปลภาษาเพื่อแปลงเป็นภาษาเครื่อง การวิวัฒนาการของคอมพิวเตอร์ -> ยุคของภาษาคอมพิวเตอร์ กระบวนทัศน์ในการเขียนโปรแกรม (Programming paradigm) เป็นวิธีการพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์ https://sites.google.com/site/wepcomputer/-kar-kheiyn-porkaerm-phasa-khan-phun-than/-phasa-khxmphiwtexr https://www.info.ucl.ac.be/~pvr/paradigms.html
ระดับของภาษาคอมพิวเตอร์ http://itnews4u.com/levels-of-computer-languages.html
ยุคของภาษาคอมพิวเตอร์ ภาษาคอมพิวเตอร์มีการพัฒนาหรือมีวิวัฒนาการมาโดยลำดับเช่นเดียวกับคอมพิวเตอร์ โดยจะสามารถแบ่งออกเป็นยุค หรือเป็นรุ่น (Generation) 1. ภาษาเครื่อง (Machine Language) 2. ภาษาแอสเซมบลี (Assembly Language) 3. ภาษาชั้นสูง (High-level Language) 4. ภาษาขั้นสูงมาก (Very high-level Language) 5. ภาษาธรรมชาติ (Natural Language) https://pattts.wordpress.com/ /การโปรแกรมเบื้องต้น/ภาษาคอมพิวเตอร์/ยุคของภาษาคอมพิวเตอร์/
ยุคของภาษาคอมพิวเตอร์ http://users.evtek.fi/~jaanah/IntroC/DBeech/3gl_intro.htm
กระบวนทัศน์ในการเขียนโปรแกรม (Programming paradigm) https://www.slideshare.net/davilinjohnson/overview-of-programming-paradigms
ภาษาแอสเซมบลี (Assembly Language) http://www.androidauthority.com/assembly-language-and-machine-code-678230/
ภาษาชั้นสูง (High-level Language) โปรแกรมที่เรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์(Interpreter) ภาษาที่มีแบบแผน (Procedural Language) ยกตัวอย่างภาษาโปรแกรมระดับสูงเช่น Fortran , Basic, pascal, C https://www.slideshare.net/mrivu/high-level-language-hll
ภาษาขั้นสูงมาก (Very high-level Language) เพียงบอกแต่ว่าให้คอมพิวเตอร์ทำอะไร โดยไม่ต้องบอกคอมพิวเตอร์ว่าสิ่งนั้นทำอย่างไร เรียกว่าเป็นภาษาเชิงผลลัพธ์ คือเน้นว่าทำอะไร ไม่ใช่ทำอย่างไร ดังนั้นจึงเป็นภาษาโปรแกรมที่เขียนง่าย อยู่ควบคู่กับระบบฐานข้อมูล สามารถจัดการฐานข้อมูล ภาษาสอบถามเชิงโครงสร้าง (Structured Query Language: SQL) http://www.thaicreate.com/tutorial/sql.html
ภาษาธรรมชาติ (Natural Language) ภาษาธรรมชาติ สามารถสั่งงานคอมพิวเตอร์ โดยใช้ภาษามนุษย์โดยตรงได้ ถูกสร้างขึ้นมาจากระบบผู้เชี่ยวชาญ (Expert System)ใช้ปัญญาประดิษฐ์ (Artificial Intelligence) เปรียบเสมือนผู้เชี่ยวชาญที่สามารถคิดและตัดสินใจได้ ใช้ข้อมูลความจริงต่าง ๆ เป็นจำนวนมหาศาล จัดเก็บในระบบฐานข้อมูลของผู้เชี่ยวชาญ เรียกว่า ฐานความรู้ (Knowledge Base) https://www.legaltechnology.com/latest-news/artificial-intelligence-in-law-the-state-of-play-in-2015/ https://pattts.wordpress.com/การเขียนโปรแกรมเบื้องต้น/ภาษาคอมพิวเตอร์/ยุคของภาษาคอมพิวเตอร์/ http://premsurat19260.tumblr.com/post/67367728145/databases-are-in-your-life-digital-engines-for
กระบวนทัศน์ในการเขียนโปรแกรม กระบวนทัศน์ในการเขียนโปรแกรม (Programming paradigm) เป็นวิธีการพื้นฐานของการเขียนโปรแกรม ซึ่งแต่ละภาษาสามารถใช้ได้ เช่น ภาษา C เน้นการทำงานเป็นลำดับตามโครงสร้างพื้นฐาน ภาษา Java เน้นการสร้างคลาสตามหลักการ OOP http://www.tamemo.com/post/110/programming-paradigm/
กระบวนทัศน์ในการเขียนโปรแกรม การเขียนโปรแกรมเชิงคำสั่ง (imperative programming) การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) การเขียนโปรแกรมเชิงฟังก์ชัน (functional programming) การเขียนโปรแกรมเชิงตรรกะ (logic programming)
Imperative Programming การเขียนโปรแกรมโดยการเขียน “คำสั่ง หรือ Statement” ตามลำดับ โปรแกรมจะทำงานตามลำดับคำสั่ง imperative อาจเรียกว่า Procedural หรือ Structure ได้ โครงสร้างการทำงานของคำสั่ง ได้แก่ การควบคุมทิศทาง การกระโดดข้าม การไหลหรือ Flow แบบต่างๆ http://softwareengineering.stackexchange.com/questions/117092/whats-the-difference-between-imperative-procedural-and-structured-programming
Object-Oriented Programming การเขียนโปรแกรมเชิงวัตถุ โดยพิจารณาวัตถุที่ใช้ในการเขียนโปรแกรม คลาส (Class) เป็นการรวมข้อมูล(data) และ พฤติกรรม(behavior) ของวัตถุ และความสัมพันธ์กันระหว่างวัตถุ ซึ่งนำมาประกอบเป็นโปรแกรม http://thebookisonthetable1.blogspot.com/
Functional Programming การเขียนโปรแกรมเชิงฟังก์ชัน functional programming มีพื้นฐานมาจาก Lambda calculus ซึ่งเป็นคณิตศาสตร์แขนงหนึ่งซึ่งคิดค้นโดย Alonzo Church เช่น ภาษา LISP (List Processing) และ ML (Meta Language) ภาษา OCaml http://palmstroem.blogspot.com/2012/05/lambda-calculus-for-absolute-dummies.html http://www.kammerath.co.uk/The-Joys-of-functional-programming-in-Scala.html
Declarative programming การเขียนโปรแกรมเชิงประกาศ เป็นการประกาศว่าต้องการอะไร https://www.smashingmagazine.com/2014/07/declarative-programming/
การทำงานจากเหตุการณ์ (Event-Driven) การเขียนโปรแกรมตามเหตุการณ์ที่เกิดขึ้น final Button button = (Button) ...; button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { alert("กดปุ่มแล้วล่ะนะ"); } });
การกำหนดสัญลักษณ์และตัวเลข (Symbolic vs Numeric) การเขียนโปรแกรมด้วยสัญลักษณ์และตัวเลข double x = 0.1 * 0.1; print(x);
ขั้นตอนการเขียนโค้ด (Coding) การเขียนโค้ดตามอัลกอริทึมด้วยภาษาคอมพิวเตอร์ เพื่อให้อุปกรณ์คอมพิวเตอร์ดำเนินการตามคำสั่งที่กำหนดไว้ได้
การแปลภาษา C ด้วย Compiler http://know.9choo.in.th/2013/05/interpreter-compiler.html http://www.9wy.net/onlinebook/CPrimerPlus5/ch01lev1sec7.html
Object Code Files Source code คือ คำสั่งหรือโค๊ดในโปรแกรม ซึ่งเขียนด้วยภาษาคอมพิวเตอร์ การแปลงต้นฉบับจาก Source code ให้เป็น Object Code http://withanage.blogspot.com/
Executable Files เช่น Microsoft Excel ประกอบด้วยแฟ้มข้อมูลหลายสิบแฟ้ม แต่แฟ้มที่เป็นตัวกระทำการคือแฟ้ม Excel.exe การสั่งให้โปรแกรมเริ่มทำงาน แฟ้มประเภทนี้ใช้นามสกุล .exe มีลักษณะคล้ายแฟ้มข้อมูลที่นามสกุล .COM http://dictionary.sanook.com/search/dict-computer/executable-file
Libraries แฟ้มข้อมูลที่เก็บ object files ต่างๆ ซึ่งสามารถใช้เชื่อมโยงโปรแกรม library ถูกใช้เป็นตัวชี้ ทำให้ง่ายต่อการใช้งาน เช่น ฟังก์ชัน ตัวแปร และค่าอื่นๆ ภาษาคอมพิวเตอร์ส่วนใหญ่จะประกอบด้วย library พื้นฐานและสร้างเอง framework เป็นกลุ่มของ library ในการเขียนโปรแกรมแต่ละแบบ http://cocoadevcentral.com/articles/000081.php
ขณะที่โปรแกรมทำงาน (Run-time) การเขียนโปรแกรมเพื่อให้คอมพิวเตอร์ทำงาน
สรุป ภาษาคอมพิวเตอร์เป็นภาษาที่มนุษย์ใช้สื่อสารกับคอมพิวเตอร์ สามารถแบ่งได้ตาม ระดับความเข้าใจของมนุษย์ ยุคของการเปลี่ยนแปลงและกระบวนทัศน์ในการเขียนโปรแกรม วิวัฒนาการของคอมพิวเตอร์ ทำให้ภาษาคอมพิวเตอร์เปลี่ยนแปลง ความแตกต่างจากแนวคิดของภาษาคอมพิวเตอร์ที่ใช้ติดต่อสื่อสาร จำเป็นต้องศึกษารูปแบบการทำงานของภาษาคอมพิวเตอร์ เพื่อให้สามารถพัฒนาโปรแกรมให้ได้ตามความต้องการ ภาษาคอมพิวเตอร์ในปัจจุบันมุ่งเน้นการแก้ปัญหาของมนุษย์