ใบความร้ทู ่ี 2 เร่อื ง ภาษาคอมพวิ เตอร์และตัวแปลภาษา ภาษาคอมพวิ เตอร์ ภาษาคอมพิวเตอร์ หมายถึง ภาษาใด ๆ ท่ีผู้ใช้งานใช้ส่ือสารกับคอมพิวเตอร์ หรือคอมพิวเตอร์ด้วยกัน แล้วคอมพิวเตอร์สามารถทางานตามคาส่ังน้ันได้ ภาษาคอมพิวเตอร์มีมากมายหลายพันภาษา แต่ภาษาที่ส่ังให้ คอมพิวเตอร์ทางานไดจ้ ริงน้ันมีภาษาเดียว คือ ภาษาเครอื่ ง ( machine language ) การจดั แบ่งภาษาคอมพิวเตอร์ ส่วนมากในปจั จุบันนยิ มแบง่ ภาษาคอมพวิ เตอร์เป็นยคุ ดังนี้ 1. ภาษาเครื่อง (Machine Language) 2. ภาษาแอสเซมบลี (Assembly Language) 3. ภาษาชนั้ สงู (High - level Language) 4. ภาษาช้ันสูงมาก (Very High - level Language) 5. ภาษาธรรมชาติ (Natural Language) ยุคที่ 1 1. ภาษาเคร่ือง (Machine Language) ในยุคแรก ๆ การใช้คอมพิวเตอร์ให้ทางานตามต้องการน้ัน ผู้เขียนโปรแกรมจะต้องเขียนคาสั่งด้วยภาษา ของเคร่ืองคอมพิวเตอร์ซึ่งเรียกว่า ภาษาเคร่ือง คาส่ังของภาษาเครื่องน้ันจะประกอบด้วยกลุ่มของตัวเลขในระบบ เลขฐานสอง เป็นภาษาเดียวเท่านั้นที่เคร่ืองคอมพิวเตอร์เข้าใจได้โดยตรง ลักษณะของภาษาเป็นภาษาที่ข้ึนอยู่กับ ฮาร์ดแวร์ของคอมพิวเตอร์แต่ละระบบ โดยเขียนอยู่ในรูปของรหัสของระบบเลขฐานสอง ประกอบด้วย เลข 0 และเลข 1 ท่ีนามาเขียนเรียงติดต่อกัน ประโยคคาสั่งของภาษาเครื่องจะประกอบด้วยส่วนท่ีระบุให้คอมพิวเตอร์ ทางานอะไรเช่น สั่งให้ทาการบวกเลข ส่ังให้ทาการเคลื่อนย้ายข้อมูล เป็นต้น และอีกส่วนเพื่อ บอกแหล่งข้อมูลที่ จะนามาทางานตามท่รี ะบใุ นตอนแรก โครงสรา้ งของคาสง่ั ในภาษาเครือ่ ง คาสั่งในภาษาเคร่ืองจะประกอบด้วย 2 สว่ นคอื โอเปอเรชนั โคด (Operation Code) เป็นคาสั่งทส่ี ่ังใหเ้ ครื่องคอมพวิ เตอรป์ ฏิบตั ิการ เช่นการ บวก (Addition) การลบ (Subtraction) เปน็ ตน้ โอเปอแรนด์ (Operands)เปน็ ตัวท่รี ะบตุ าแหน่งท่ีเกบ็ ของขอ้ มลู ท่จี ะเขา้ คอมพิวเตอรเ์ พื่อ นาไป ปฏบิ ตั ิการตามคาสัง่ ในโอเปอเรชนั โคด
ยุคที่ 2 2. ภาษาแอสเซมบลี เป็นภาษาท่ีมีการใช้สัญลักษณ์ข้อความ (mnemonic codes) แทนกลุ่มของเลขฐานสอง เพื่อให้ง่ายต่อ การเขยี นและการจดจามากกวา่ ภาษาเครอ่ื ง ตวั อย่างเชน่ มกี ารใชส้ ัญลักษณต์ อ่ ไปนี้ A ยอ่ มาจาก ADD หมายถึงการบวก S ยอ่ มาจาก SUBTRACT หมายถงึ การลบ C ย่อมาจาก COMPLARE หมายถงึ การเปรยี บเทยี บ MP ยอ่ มาจาก MULTIPLY หมายถงึ การคณู ST ย่อมาจาก SRORE หมายถึง การเก็บข้อมลู ไวใ้ นหนว่ ยความจา เป็นต้น ถึงแม้ว่าสัญลักษณ์เหล่านี้จะไม่ใช่คาท่ีมีความหมายในภาษาอังกฤษแต่ก็ทาให้นักเขียนโปรแกรมสามารถ เขียนโปรแกรมได้สะดวกสบายมากข้ึน เนื่องจากไม่ต้องสะดวกสบายมากขึ้น เนื่องจากไม่ต้องจดจา 0 และ1 ของ เลขฐานสองอีกนอกจากนี้ ภาษาแอสเซมบลียังอนุญาตให้ผู้เขียนใช้ตัวแปรท่ีต้ังข้ึนมาเองในการเก็บค่าข้อมูลใด ๆ เช่น X, Y, RATE หรือ TOTAL แทนการอ้างอิงถึงตาแหน่งทเ่ี ก็บข้อมูลจริง ๆ ภายในหน่วยความจาดังได้กล่าวแล้ว ว่ า เค รื่ อ ง ค อ ม พิ ว เต อ ร์ จ ะ รู้ จั ก เฉ พ า ะ ภ า ษ า เค รื่ อ ง เท่ า น้ั น ดั ง น้ั น จึ ง จ า เป็ น ที่ จ ะ ต้ อ ง มี ก า ร แ ป ล โ ป ร แ ก ร ม ภาษาแอสเซมบลีนั้นให้เป็นภาษาเครื่องเสียก่อนเพ่ือให้คอมพิวเตอร์สามารถทางานตามคาส่ังในโปรแกรมได้การ แปลภาษาแอสเซมบลีเป็นภาษาเคร่ืองน้ันจะต้องมีตัวแปลภาษาแอสเซมบลีที่เรียกว่า แอสเซมเบลอร์ (Assembler) เป็นตัวแปล ซึ่งภาษาแอสเซมบลี 1คาส่ังจะสามารถแปลเป็นภาษาเคร่ืองได้ 1 คาสั่งเช่นกัน ดังนั้น เขียนโปรแกรมภาษาแอสเซมบลี 10 คาส่ัง ก็จะถูกแปลเป็นภาษาเครื่อง 10 คาสั่งเช่นกันจึงเห็นได้ว่า ภาษาแอสเซมบลีจะมีลักษณะท่ีเหมือนกับภาษาเคร่ืองคือ เป็นภาษาที่ข้ึนอยู่กับเคร่ือง กล่าวคือเราไม่สามารถนา โปรแกรมท่ีเขียนด้วยแอสเซมบลีโปรแกรมเดียวกันไปใช้ในเครื่องต่างชนิดกันได้และนอกจากนี้ผู้ท่ีจะเขียน โปรแกรมภาษาแอสเซมบลีได้จะต้องมีความรู้ ความเข้าใจในเร่ืองของฮาร์ดแวร์เป็นอย่างดีเนื่องจากจะต้องยุ่ง เกีย่ วกบั การใช้งานหนว่ ยความจาทเ่ี ปน็ งานหน่วยความจา ที่เป็นรีจสิ เตอร์ภายในตลอดดงั นั้นจงึ เหมาะทจ่ี ะใช้เขยี น ในงานทต่ี อ้ งการความเรว็ ในการทางานสงู เชน่ งานทางด้านกราฟกิ หรอื งานพัฒนาซอฟต์แวร์ระบบต่าง ๆ อย่างไรก็ตามถึงแม้วา่ ภาษาน้ีจะงา่ ยกว่าการเขยี นดว้ ยภาษาเครื่อง แต่ก็ยังถอื วา่ เปน็ ภาษาช้ันตา่ ทยี่ งั ยากต่อการ เขยี นและ การเรียนรมู้ ากสาหรบั ผทู้ ่ไี มค่ วามรเู้ กย่ี วกับฮาร์ดแวรเ์ ทา่ ใดนกั ยุคท่ี 3 3. ภาษาระดับสงู สามารถเรียกได้อีกอย่างว่าเป็นภาษารุ่นท่ี 3 (3rd Generation Languages หรือ 3GLs) เป็นภาษาท่ี ถูกสร้างขึ้นมาเพ่ือให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น เน่ืองจากมีลักษณะเหมือนภาษาอังกฤษท่ัวๆ ไป และท่ีสาคัญคือผู้เขียนโปรแกรมไม่จาเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์แต่อย่างใด ตัวอย่างของภาษา ประเภทน้ีได้แก่ ภาษาฟอร์แทรน (FORTRAN) โคบอล (COBOL) เบสิก (BASIC) ปาสคาล (PASCAL) ซี (C) เอดา (ADA) อย่างไรก็ตามโปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทางานได้ ก็ต่อเม่ือมีการแปลงให้เป็น
ภาษาเครื่องเสียก่อน ซ่ึงวิธีการแปลงจากภาษาช้ันสูงให้เป็นภาษาเคร่ืองน้ัน จะทาได้โดยใช้โปรแกรมท่ีเรียกว่า คอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหน่ึง โดยภาษาช้ันสูงแต่ภาษาจะมี ตัวแปลภาษาเฉพาะเป็นของตัวเอง การเขียนโปรแกรมด้วยภาษาช้ันสูงน้ันนอกจากจะให้ความสะดวกแก่ผู้เขียนเป็นอันมากแ ล้วผู้เขียนแทบ จะไม่ตอ้ งมคี วามรูเ้ กย่ี วกับการทางาน ของระบบฮาร์ดแวร์ก็สามารถเขียนโปรแกรมสั่งให้เคร่อื งคอมพิวเตอรท์ างาน ได้นอกจากน้ียังมีข้อดีอีกอย่างคือสามารถนาโปรแกรมที่เขียนนี้ ไปใช้งานบนเคร่ืองใดก็ได้ คือมีลักษณะที่ไม่ขึ้นอยู่ กับกับเคร่ือง(Hardware Indepent) เพียงแต่ต้องทาการการแปลโปรแกรมใหม่เท่าน้ัน แต่อย่างไรก็ตาม ภาษาเครื่องท่ไี ด้จากการแปลภาษาช้ันสูงนี้อาจเยิ่นเยอ้ และไมม่ ีประสิทธิภาพเท่ากับการเขียนดว้ ยภาษาเครือ่ งหรือ แอสเซมบลโี ดยตรง ภาษารุ่นที่ 3 นี้ส่วนใหญ่จะจัดอยู่ในกลุ่มของภาษาที่มีแบบแผน (Procedural language)เนื่องจาก ลักษณะการเขียนโปรแกรมจะมีโครงสร้างแบบแผนท่ีเป็นระเบียบ กล่าวคือ งานทุกอย่างผู้เขียนโปรแกรมต้อง เขียนโปรแกรมควบคุมการทางานเองทั้งหมด และต้องเขียนคาสั่งการทางานที่เป็นข้ันตอนทุกอย่าง ไม่ว่าจะเป็น การสร้างแบบฟอร์มกรอกข้อมูล การประมวลผล หรือการสร้างรายงาน ซ่ึงโปรแกรมท่ีเขียนจะค่อนข้างซับซ้อน และใชเ้ วลาในการพัฒนาค่อนข้างยาก ยคุ ที่ 4 4. ภาษาระดบั สงู มาก (Very high - Level Language) สามารถเรียกไดอ้ ีกอย่างว่าภาษาในร่นุ ที่ 4 (4GLs: Fourth Generation Languages)ภาษานี้เป็นภาษาท่ี อยู่ในระดับท่ีสูงกว่าภาษารุ่นท่ี 3 มีลักษณะของภาษาในรุ่นที่เป็นธรรมชาติคล้ายๆ กับภาษาพูดของมนุษย์จะช่วย ในเรอื่ งของการสรา้ งแบบฟอร์มบนหน้าจอเพ่ือจัดการเก่ียวกับขอ้ มลู รวมไปถึงการออกรายงาน ซึ่งจะมีการจัดการ ท่ีง่ายมากไม่ยุ่งยากเหมือนภ าษารุ่นที่ 3 ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL, Focus, Sybase,InGresเปน็ ตน้ ลกั ษณะของ 4GLมีดงั ต่อไปนี้ เป็นภาษาแบบ Nonprocedural ซึ่งหมายความว่าผู้ใช้เพียงแต่บอกว่าต้องการอะไร แต่ไม่ต้องบอกถึง รายละเอียด ว่าต้องทาอย่างไร คอมพิวเตอร์จะเป็นผู้จัดการให้เองหมด ตัวอย่างเช่น ถ้าต้องการสร้างแบบฟอร์ม การรับข้อมูลจาก ผู้ใช้ผู้เขียนโปรแกรมเพียงแต่ทาการออกแบบหน้าตาของแบบฟอร์มน้ันบนโปรแกรมอิดิเตอร์ (Editor) ใดๆ และเก็บ เปน็ ไฟล์ไว้เมื่อจะเรียกใช้งานแบบฟอร์มนั้นเพียงแตใ่ ชค้ าสัง่ เปิดไฟลน์ ั้นข้ึนมาแสดงบนหน้า จอคอมพิวเตอร์ได้โดยทันทีซึ่งต่างจากภาษารุ่นที่ 3 ซึ่งเป็นแบบ Proceduralผู้เขียนโปรแกรม จะต้องเขียน รายละเอียดของโปรแกรมทั้งหมดว่า ท่ีบรรทัดน้ีคอลัมน์นี้จะให้แสดงข้อความหรือข้อมูลอะไรออกมา ซึ่งถ้าต่อไป จะมีการปรับเปลี่ยนหน้าตาของแบบฟอร์ม ก็จะเป็นเร่ืองท่ียุ่งยากอย่างยิ่ง หรือในการสร้างรายงานด้วย 4GLs ก็สามารถทาได้อย่างง่ายดายเพียงแต่ระบุลงไปว่าต้องการรายงานอะไร มีข้อมูลใดท่ีจะนามาแสดงบ้าง โดยไม่ต้อง บอกถงึ วิธีการสรา้ ง หรือการดึงข้อมูลแต่อย่างใด 4GLsจะจดั การใหเ้ องหมด
ส่วนใหญ่จะพบว่า 4GLs มักจะอยู่ควบคู่กับระบบฐานข้อมูล โดยผู้ใช้ระบบฐานข้อมูลจะสามารถจัดการ ฐานขอ้ มูล ไดโ้ ดยผา่ นทาง 4GLs นี้ ส่วนประกอบของภาษา 4GLs โดยท่ัวไปแล้ว 4GLs จะประกอบดว้ ยส่วนสาคัญ 3 ส่วนดังต่อไปนี้ เครื่องช่วยสร้างรายงาน (Report Generators)หรืออาจเรียกได้อีกอย่างว่า เคร่ืองมือช่วยเขียนรายงาน (Report Writer) เป็นโปรแกรมสาหรับผู้ใช้ (end - users) ให้สามารถสร้างรายงานอย่างง่ายได้ด้วยตนเอง โดยผู้ใช้สามารถกาหนดเง่ือนไขและข้อมูลที่จะออกมาพิมพ์ในรายงานรวมไปถึงรูปแบบ (format) ของการพิมพ์ไว้ โปรแกรมช่วยสรา้ งรายงานนี้จะทาการพิมพร์ ายงานตามรูปแบบท่ีเรากาหนดไว้ให้ ภาษาช่วยค้นหาข้อมูล (Query Languages)เป็นภาษาที่ช่วยในการค้นหาหรือดึงข้อมูลจากฐานข้อมูล ภาษาน้ีจะงา่ ยตอ่ การใช้งานมาก เนื่องจากจะอยู่ในรูปแบบท่ีใกล้เคียงกับภาษาอังกฤษมาก ตัวอย่างของภาษาช่วย ค้นหาข้อมูลนี้ได้แก่ ภาษา SQL (Structured Query Language)ภาษา QBE (Query - By - Example) และ Intellect เปน็ ตน้ เครื่องมือช่วยสร้างโปรแกรม (Application Generators) 4GLs จะมีรูปแบบการเขียนโปรแกรม เฉพาะตวั และสามารถเรยี กใช้เครอื่ งมือช่วยสรา้ งโปรแกรมนที้ าการแปลง 4GLs ให้กลายเปน็ โปรกรมในภาษารุ่นท่ี 3 ได้ เชน่ ภาษาโคบอล หรอื ภาษาซี เป็นต้น ซึ่งอาจนาภาษาโคบอล หรือซที ่ีแปลงได้ไปพัฒนาตอ่ เพ่ือใชก้ ับงานท่ี มีความซับซอ้ นมาก ๆ ต่อไปได้ ประโยชน์ของ 4GL เป็นภาษาที่ง่ายต่อการเรียนรู้ คาสั่งแต่ละคาส่ังสื่อความหมายได้อย่างชัดเจน ดังน้ันจึงสามารถใช้เวลาใน การศกึ ษาสนั้ กวา่ ภาษารุ่นที่ 3 ประหยดั เวลาในการเขยี นโปรแกรมไดม้ าก เนอื่ งจาก 1 คาส่ังของ 4GL ถา้ ต้องเขียนดว้ ยภาษารุ่นท่ี 3 อาจตอ้ งเขยี นถึง 100 กวา่ คาส่ังในการทางานแบบเดียวกัน สนบั สนนุ ระบบจัดการฐานข้อมูล ทาใหส้ ามารถจดั การกับข้อมลู ได้อยา่ งสะดวก และรวดเรว็ สามารถสร้างแบบฟอรม์ เพอื่ จดั การกับข้อมูลในฐานขอ้ มลู และออกรายงานได้อยา่ งง่ายดาย ไม่ยุ่งยาก มเี ครื่องมือการใช้งานเพื่ออานวยความสะดวกในการเขียนโปรแกรมมากพอสมควร สามารถทางานได้ในลกั ษณะ Interactive คอื มีการโตต้ อบกับผู้ใช้ไดท้ ันที ยคุ ท่ี 5 5. ภาษาธรรมชาติ เป็นภาษาในยุคที่ 5 ท่ีมีรูปแบบเป็นแบบ Nonprocedural เช่นเดียวกับภาษารุ่นท่ี 4 การที่เรียกว่า ภาษาธรรมชาติ เพราะจะสามารถส่ังงานคอมพิวเตอร์ได้โดยใช้ภาษามนุษย์โดยตรง ซ่ึงโดยทั่วไปคาส่ังที่มนุษย์ ป้อนเข้าไปในคอมพิวเตอร์จะอยู่ในรูปของภาษาพูดมนุษย์ ซ่ึงอาจมีรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์ก็ สามารถแปลคาส่ัง เหล่าน้ันให้อยู่ในรูปแบบท่ีคอมพิวเตอร์เข้าใจได้ ถ้าตั้งคาถามใดไม่กระจ่างก็จะมีการถามกลับ เพือ่ ใหเ้ ข้าใจคาถามไดอ้ ย่างถกู ต้อง
ภาษาธรรมชาตินี้ ถกู สร้างขึ้นมาจากเทคโนโลยีทางด้านระบบผูเ้ ชย่ี วชาญ (Expert System) ซ่ึงเป็นงานที่ อยู่ในสาขาปัญญาประดิษฐ์ (Artificial Intelligence) ในการที่พยายามทาให้คอมพิวเตอร์เปรียบเสมือนกับเป็น ผู้เช่ียวชาญคนหนึ่งท่ีสามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ คอมพิวเตอรส์ ามารถตอบคาถามของมนุษย์ได้ อย่างถูกต้องพร้อมท้ังมีข้อแนะนาต่าง ๆ เพ่ือช่วยในการตัดสินใจของมนุษย์ได้อีกด้วย ระบบผู้เช่ียวชาญนี้จะใช้กับ งานเฉพาะด้านใดด้านหนึ่งเช่น ในการแพทย์ ในการพยากรณ์อากาศ ในการวิเคราะห์ทางเคมี การลงทุน ฯลฯ ซึ่งในการน้ีจะต้องมีการเก็บรวบรวมข้อมูลที่มีอยู่เป็นจานวนมหาศาลและให้ผู้ใช้สามารถใช้ภาษาธรรมชาติในการ ดึงข้อมูลจากฐานความรู้น้ีได้ ดังนั้นเราจึงอาจเรียกระบบผู้เช่ียวชาญน้ีได้อีกอย่างว่าเป็ น ระบบฐานความรู้ (Knowledge Base System) อย่างไรก็ตามระบบผู้เชี่ยวชาญไม่สามารถนามาแทนท่ีการทางานของผู้เชี่ยวชาญที่ เป็นมนุษย์ได้ เนื่องจากท้ังระบบผู้เช่ียวชาญและมนุษย์จะต้องทางานร่วมกัน โดยมนุษย์จะนาขอ้ มูลท่ีได้จากระบบ ผู้เช่ียวชาญมาพิจารณาร่วมกับวิจารญาณของตนเองเพ่ือตัดสินปัญหาที่ซับซ้อนอีกที อย่างไรก็ตามระบบ ผู้เชี่ยวชาญน้ีเป็นคลนื่ แหง่ อนาคต ท่จี ะใชเ้ ปน็ เครอื่ งมือชว่ ยตดั สินใจการทางานของมนุษย์ไดอ้ ย่างดีเย่ยี ม ภาษาคอมพิวเตอร์ จาแนกตามลักษณะการทางาน ได้เปน็ ดงั น้ี 1. ภาษาโปรแกรม 2. ภาษาสคริปต์ 3. ภาษามารก์ อปั 4. Query language 5. Transformation language โดยภาษาแตล่ ะประเภท มีลกั ษณะ ดังนี้ 1. ภาษาโปรแกรม ภาษาโปรแกรม คือ ภาษาประดิษฐ์ที่สามารถใช้ควบคุมกาหนดพฤติกรรมการทางานของเครื่องจักรได้ โดยเฉพาะคอมพิวเตอร์ ภาษาโปรแกรมก็เหมือนภาษามนุษย์ที่จะต้องใช้วากยสัมพันธ์ (syntax) และความหมาย (semantic) เพื่อกาหนดโครงสร้างและตีความหมายตามลาดับ ภาษาโปรแกรมช่วยให้การส่ือสารในภารกิจ สารสนเทศสะดวกมากขึ้นและถูกต้องแม่นยาตามขั้นตอนวิธี (algorithm) ในโลกนี้มีภาษาโปรแกรมมากกว่า 8,500 ภาษาท่ีแตกต่างกันไป และก็ยังมีภาษาใหม่เกิดข้ึนทุกๆ ปี ผู้ที่ใช้งานภาษาโปรแกรมเพ่ือเขียนโปรแกรม เรยี กว่า โปรแกรมเมอร์ (programmer) 2. ภาษาสคริปต์ ภาษาสคริปต์ คือโคด้ คาสั่งที่ทางานในแบบ Text File โดยมีตวั Interpreter หรือตัวแปลภาษาทาหน้าท่ี แปลความหมายในการทางาน การทางานของโปรแกรมในแบบ Script นีจ้ ะเปน็ การทางานตามคาสัง่ ทีละบรรทัด ในการเขียนภาษาสคริปต์ สาหรับเว็บไซต์นั้นเขียนได้หลายภาษา และมีรูปแบบการเขียนอยู่ด้วยกันสอง แบบคอื
1. Client-Side Scripting เป็นการเขียนโปรแกรมภาษาสคริปต์ ให้ทางานบน Web Browser โดยเขียน โปรแกรมแทรกหรือแฝง (Embed) เขา้ ไปเป็นส่วนหนึง่ ของเอกสาร HTML โปรแกรมภาษาสคริปต์ประเภทน้ีไดแ้ ก่ JavaScript, VBScript 2. Server-Side Scripting เป็นการเขียนโปรแกรมภาษาสคริปต์ ให้ทางานบน Web Server โดย Web Browser จะเป็นเพียงแค่ตัวท่ีแสดงผลการทางานเท่านั้นโปรแกรมท่ีทางานบน Web Server เหล่าน้ีเราเรียกว่า CGI Script ซึ่งสามารถเขียนได้หลายภาษาด้วยกันเช่น Perl , C, Pascal , VB เป็นต้น และ โปรแกรมภาษา สคริปต์ประเภทน้ีไดแ้ ก่ JSP, ASP , PHP CGI ย่อมาจาก Common Gateway Interface หมายถึงวิธีการติดต่อที่ใช้ระหว่าง Web Server และ Program ซึ่งไม่จากัดภาษาที่ใช้เขียน ไม่ว่าจะทางานบนเครื่องและระบบปฏิบัติการใดข้อสาคัญ Program เหล่านั้นจะต้องรับและส่งข้อมูลตามรูปแบบท่ีกาหนดไว้เราจึงเรียก Program ที่ทางานบน Web Server โดยวิธกี ารติดตอ่ แบบ CGI วา่ CGI Script การทางานของ CGI CGI จะทางานอยบู่ น Server และทางานร่วมกบั โปรแกรม Web Server จะทาหน้าทป่ี ระมวลผลข้อมูลที่ ไดจ้ ากผเู้ ข้ามาเย่ียมชมและแสดงผลออกมาทางโฮมเพจ ยกตวั อย่างการใช้งาน CGI ท่ีเหน็ ไดช้ ดั ๆ เช่น เวบ็ ไซต์Yahoo (www.yahoo.com) ซ่ึงคงไมม่ ใี ครทีไ่ ม่รจู้ ัก เพราะเป็นเว็บไซต์ที่ใช้ในการค้นหาข้อมูลที่เก่าแก่ตัวหน่ึงเวปไซต์ดังกล่าวจะมีช่องรับข้อความอยู่ช่องหน่ึง ถ้าเรา ต้องการคน้ หาอะไรเราก็พมิ พ์ลงไปในช่องนนั้ และกดปมุ่ Search สักครู่กจ็ ะแสดงผลที่ตอ้ งการค้นหาออกมาให้ เรามาดูการทางานของเวบ็ ไซต์Yahoo กันคร่าวๆ เพื่อให้รู้ว่า CGI ทางานอย่างไรจริง ๆ แล้วเว็บไซต์จะมี การค้นหา และทาการแสดงผลที่ซับซ้อนกว่าน้ี แต่ยกมาให้ดูเพียงบางส่วนเท่านั้น ในเว็บไซต์Yahoo นั้นจะมี CGI อยูต่ ัวหนึ่ง และมฐี านขอ้ มลู อย่ดู ังรปู
3. ภาษามารก์ อัป (Markup language) ภาษามาร์กอัป (Markup language) คือประเภทภาษาคอมพิวเตอร์ที่แสดงทั้งข้อมูล และข้อมูลรูปแบบ เข้าด้วยกัน โดยข้อมูลรูปแบบอธิบายถึงโครงสร้างหรือการแสดงผลซ่ึงส่วนนี้เรียกว่า มาร์กอัป โดยจะอยู่รวมกับ ข้อมูลปกติ ภาษามาร์กอัปท่ีรู้จักกันดีท่ีสุดคือ HTML ตามความเป็นมาแล้ว ภาษารูปแบบนี้ได้มีการใช้ใน อตุ สาหกรรมการพิมพใ์ นการติดตอ่ สื่อสารงานพิมพร์ ะหวา่ งผู้เขยี น บรรณาธิการ และเคร่อื งพมิ พ์ 4. ภาษาสอบถาม (Query language) ภาษาสอบถาม (Query language) เป็นภาษาคอมพิวเตอร์ที่ใช้สาหรับสอบถามหรือจัดการกับข้อมูลใน DBMS โดยภาษาประเภทน้ีท่ีได้รับความนิยมสูงสุดคือ ภาษาสอบถามเชิงโครงสร้าง (Structure Query Language: SQL) คิดค้นโดยนักวิทยาศาสตร์ของไอบีเอ็มในทศวรรษท่ี 1970 มีรูปแบบคาส่ังที่คล้ายกับ ประโยค ในภาษาอังกฤษมาก ซ่ึงปัจจุบันองค์กร แอนซี ได้ประกาศให้ภาษาสอบถามเชิงโครงสร้าง เป็นภาษามาตรฐาน สาหรับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database management System หรือ RDBMS) เป็นระบบ DBMS แบบท่ีใช้กันแพร่หลายที่สุดในปัจจุบัน ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ทุกระบบจะใช้ คาสั่งพ้ืนฐานของภาษา SQL ได้เหมือน ๆ กัน แต่อาจมีคาสั่งพิเศษท่ีแตกต่างกันบ้าง เนื่องจากบริษัทผู้ผลิตแต่ละ รายก็พยายามที่จะพัฒนา RDBMS ของตนเองให้มีลักษณะที่เด่นกว่าระบบอื่นโดยเพิ่มคุณสมบัติที่เกินข้อกาหนด ของ แอนซี ซึ่งคิดวา่ จะเปน็ ประโยชนต์ ่อผู้ใช้เข้าไป 5. Transformation language ภาษาคอมพวิ เตอร์สาหรับพัฒนาโปรแกรม ในปัจจุบันมีภาษาคอมพิวเตอร์ท่ีใช้สาหรับพัฒนาโปรแกรมมากมาย บางภาษาแมว้ ่าจะมีมานานแล้วแต่ก็ ยงั ไดร้ ับความนยิ มอยู่เนื่องจากมีการพัฒนามาอย่างยาวนาน จึงมีเครอื่ งมือชว่ ยให้เขียนโปรแกรมไดง้ ่ายขน้ึ มากมาย ภาษาแต่ละภาษาจะมีโครงสร้างของภาษาแตกต่างกัน มีความสามารถเด่น ๆ ต่างกัน และแต่ละภาษาก็ใช้ สภาพแวดลอ้ มของเครื่องคอมพิวเตอรต์ ่างกนั ด้วย ภาษาคอมพวิ เตอรท์ ่นี ิยมใช้ในการเขียนโปรแกรมได้แก่ ภาษาเบสกิ (BASIC) ภาษาเบสิกเปน็ ภาษาระดับสูง เกิดขนึ้ เมื่อปี ค.ศ.1963 ทม่ี หาวทิ ยาลัย Dartmouth College ต่อมาได้ถูก นามาใช้ในคอมพิวเตอร์ท่ัวไปในปี ค.ศ.1980 คาว่า BASIC ย่อมาจากคาว่า Beginner’s Allpurpose Symbolic Instruction Code ภาษาน้ีเหมาะสาหรับผู้เร่ิมต้นเขียนโปรแกรมเนื่องจากเป็นรูปแบบคาส่ังที่ง่าย แต่ ความสามารถจะนอ้ ยกวา่ ภาษาอน่ื ๆ เนือ่ งจากเป็นภาษาทีพ่ ฒั นามานานแล้ว ภาษาฟอร์แทน (FORTRAN) ภาษาน้ีเป็นภาษาระดับสูงเกิดขึ้นปี ค.ศ.1950 คาว่า FORTRAN ย่อมาจากคาว่า FORmularTRANslator ภาษานี้เป็นภาษาที่มีประสิทธิภาพสูงในการคานวณ เหมาะสาหรับการเขียนโปรแกรมประยุกต์ทางคณิตศาสตร์ ทางานบนเครื่องเมนเฟรม แต่ในปัจจุบันได้มีคอมไพล์เลอร์หลายตัวท่ีพัฒนาขึ้นสาหรับแปลภาษานี้บนเครื่อง คอมพิวเตอรท์ ่ัวไป
ภาษาโคบอล (COBOL) ภาษาน้ีเกิดจากความร่วมมือของรัฐบาลสหรัฐ กับองค์กรธุรกิจ และมหาวิทยาลับต่างๆ ถูกประกาศใช้ อย่างเป็นทางการเม่อื ปี ค.ศ.1960 ภาษานี้มชี ่ือเตม็ วา่ COmmon Business Oriented Language เปน็ ภาษาที่ใช้ เขียนโปรแกรมแบบโครงสร้าง(Structure program) เหมาะสาหรับการพัฒนาโปรแกรมประยุกต์ทางธุรกิจการ จดั เกบ็ ข้อมลู งานทางด้านบญั ชี และการเชื่อมต่อคอมพิวเตอร์ภายในองคก์ ร ภาษาปาสคาล (Pascal) ภาษานี้เกิดขึ้นเมอ่ื ปี 1970 ชื่อของภาษาเป็นการต้ังชื่อตามนักคณิตศาสตร์ท่ีประดิษฐ์เครื่องคานวณในยุค แรกท่ชี อื่ Blaise Pascal ภาษานเี้ ปน็ ภาษาระดบั สูงทีใ่ ชเ้ ขียนโปรแกรมเชิงโครงสร้างได้ ตัวแปลภาษาทีไ่ ด้รับความ นิยมมาก คือ โปรแกรมเทอร์โบปาสคาล (Turbo Pascal) ของบริษัทบอร์แลนด์ ในปัจจุบันประเทศไทยได้ใช้ โปรแกรมน้ใี นการสอนโปรแกรมเบื้องตน้ ใหก้ ับนักเรยี นนกั ศึกษาทว่ั ไป ภาษา C ภาษานี้พัฒนาขึ้นในห้องปฏิบัติการเบลล์ (Bell Laboratory) ของบริษัท เอทีแอนด์ที ในปี ค.ศ. 1970 เพื่อใช้บนระบบปฏิบัติการยูนิกส์ (UNIX) ต่อมาได้มีตัวแปลภาษาออกมาหลายตัว และได้ถูกใช้อย่างแพร่หลายบน เคร่ืองคอมพิวเตอร์ท่ัวไป ภาษาน้ีเป็นภาษาท่ีมีความยืดหยุ่นสูงสามารถทางานบนระบบปฏิบัติการต่าง ๆ ได้เป็น อยา่ งดี สามารถใชค้ วบคุมฮารด์ แวร์ได้โดยตรง แตช่ ดุ คาส่งั จะมีกฎเกณฑ์และรายละเอยี ดต่าง ๆ จานวนมาก ปีกอ่ กาเนิดของภาษาต่าง ๆ ตัวแปลภาษาโปรแกรมคอมพิวเตอร์ ตัวแปลภาษาโปรแกรมคอมพิวเตอร์ เป็นโปรแกรมท่ีใช้ในการแปลความหมายของคาสั่งใน ภาษาคอมพิวเตอร์ชนิดต่าง ๆ ไปเป็นภาษาเครื่อง ซึ่งเป็นภาษาท่ีคอมพิวเตอร์เข้าใจ และทางานตามคาส่ังได้ โดย โปรแกรมที่เขียนเป็นโปรแกรมต้นฉบับ หรือ ซอร์สโค้ด ( Source code) ซ่ึงโปรแกรมเมอร์เขียนคาสั่งตาม หลักการออกแบบโปรแกรม และจาเป็นต้องใช้ตัวแปลภาษาคอมพิวเตอร์เพื่อตรวจสอบไวยากรณ์ของภาษาว่า เขียนถูกต้อง หรือไม่ และทดสอบผลลัพธ์ว่าเป็นอย่างไร ซ่ึงภาษาคอมพิวเตอร์ชนิดต่าง ๆ จะมีตัวแปลภาษาของ ตนเองโดยเฉพาะ โปรแกรมท่ีแปลจากโปรแกรมต้นฉบับแล้วจะเรียกว่า ออบเจ็คโค้ด ( Object code) ซ่ึงเป็น ภาษาเครือ่ งท่ีประกอบดว้ ย รหสั คาส่งั ทีค่ อมพวิ เตอรส์ ามารถเขา้ ใจและนาไปปฏิบตั ไิ ด้ต่อไป ตัวแปลภาษาคอมพิวเตอร์มีการใช้งานสาหรับการแปลภาษาคอมพิวเตอร์ชนิดต่าง ๆ แบ่งออกเป็น 3 ประเภท
1. แอสเซมเบลอร์ ( Assembler) เป็นตัวแปลภาษาแอสเซมบลีซ่ึงเป็นภาษาระดับต่า ให้เป็น ภาษาเคร่ือง 2. อินเทอร์พรีเตอร์ ( Interpreter) เป็นตัวแปลภาษาคอมพิวเตอร์ระดับสูงไปเป็นภาษาเครื่อง โดยใช้ หลักการแปลคาส่ังคร้งั ละ 1 คาส่ังให้เปน็ ภาษาเครือ่ ง แล้วนาคาส่ังทีเ่ ป็นภาษาเคร่ืองนัน้ ไปทาการประมวลผล และ แสดงผลลัพธ์ทันทีหากไม่พบข้อผิดพลาด หลังจากนั้นจะแปลคาส่ังถัดไปเร่ือย ๆ จนกว่าจะจบโปรแกรม ในระหว่างการแปลคาสั่ง ถ้าหากพบข้อผิดพลาดทางไวยากรณ์ของภาษา โปรแกรมอินเทอร์พรีเตอร์ก็จะหยุดการ ทางานพร้อมแจง้ ข้อผิดพลาดให้ทาการแก้ไขซ่ึงทาได้ง่ายและรวดเรว็ แต่ออบเจ็คโค้ดท่ีได้จากการแปลคาส่ังโดยใช้ อินเทอพรีเตอร์น้ันไม่สามารถเก็บไว้ใช้ใหม่ได้ จะต้องแปลโปรแกรมใหม่ทุกครั้งที่ต้องการใช้งาน ทาให้โปรแกรม ทางานได้คอ่ นขา้ งชา้ 3. คอมไพเลอร์ ( Compiler) เป็นตัวแปลภาษาคอมพิวเตอร์ระดับสูงไปเป็นภาษาเคร่ือง โดยทาการ ตรวจสอบความถูกตอ้ งของการเขียนคาสั่งท้ังหมดทั้งโปรแกรมให้เป็นออบเจ็คโค้ด แล้วจึงทาการแปลคาส่ังไปเป็น ภาษาเคร่ือง จากนั้นจึงทาทาการประมวลผลและแสดงผลลัพธ์ หากพบข้อผิดพลาดของการเขียนโปรแกรม หรือมี คาสั่งที่ผิดหลักไวยากรณ์ของภาษาคอมพิวเตอร์ โปรแกรมคอมไพเลอร์จะแจ้งให้โปรแกรมเมอร์ทาการแก้ไขให้ ถกู ต้องทง้ั หมดกอ่ นแล้วจงึ คอมไพล์ใหม่อีกคร้งั จนกว่าไม่พบขอ้ ผิดพลาดถงึ จะนาโปรแกรมไปใชง้ านได้ ข้อดีของคอมไพเลอร์ คือโปรแกรมออปเจ็คโค้ดท่ีได้จะรวบรวมคาส่ังท่ีสาคัญในการรันโปรแกรม และได้ โปรแกรมที่ทางานเองได้ หรือ Execute Program ซ่ึงสามารถทางานได้ไม่จากัด ไม่ต้องเสียเวลาในการแปลใหม่ ทุกคร้งั ทาใหก้ ารทางานของโปรแกรมเปน็ ไปอย่างรวดเรว็ จึงเปน็ รปู แบบการแปลทไี่ ด้รบั ความนิยมอย่างมาก ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขนึ้ คือ แปลจากซอร์สโค้ด ไปเป็นรหัสช่ัวคราว หรืออินเทอมีเดียตโค้ด ( Intermediate Code) ซึ่งสามารถนาไปทางานได้ด้วย การใช้โปรแกรมในการอ่าน และ ทางานตามรหัสช่ัวคราวน้ัน โดยโปรแกรมน้ีจะมีหลักการทางาน คล้ายกับอินเทอพรีเตอร์ แต่จะทางานได้เร็วกว่า เนอื่ งจากรหัสช่วั คราวจะใกล้เคียงกับภาษาเครื่องมาก มีขอ้ ดีคือสามารถนารหสั ชัว่ คราวนน้ั ไปใชไ้ ด้กบั ทกุ ๆ เคร่ือง ม่มี ีโปรแกรมตคี วามได้ทนั ที
ใบงานท่ี 2 เรอ่ื ง ภาษาคอมพวิ เตอรแ์ ละตัวแปลภาษา คาส่งั ให้นักเรียนตอบคาถามตอ่ ไปนี้ 1. ภาษาคอมพิวเตอร์แบง่ ออกเปน็ กร่ี ะดบั อะไรบ้าง จงอธิบาย ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………….. 2. ให้นักเรียนอธิบายอินเทอร์พรีเตอร์ (Interpreter) และ คอมไพเลอร์ (Compiler) มีความแตกต่างหรือ เหมือนกนั อย่างไรจงอธบิ าย ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………..
Search
Read the Text Version
- 1 - 10
Pages: