Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Chapter 01

Chapter 01

Published by samofak, 2018-05-03 23:46:17

Description: Chapter 01

Search

Read the Text Version

บทที ความรู้พืนฐานเกียวกบั การเขียนโปรแกรมคอมพวิ เตอร์ ธนกร สมอฝาก วิทยาลยั อาชวี ศกึ ษาขอนแก่น |

บทท่ี 1ความรพู ้ืนฐานเกีย่ วกบั การเขยี นโปรแกรมคอมพวิ เตอร1. การทํางานของคอมพิวเตอร 6. สิง่ ควรรูในการเรียนเขียนโปรแกรม2. คําศัพทท เี่ กย่ี วของ จุดมงุ หมายในการเขียนโปรแกรม การวเิ คราะหปญ หา โปรแกรม การออกแบบโปรแกรม ซอฟตแวร เครือ่ งมอื ชว ยออกแบบโปรแกรม3. ชนิดของโปรแกรมคอมพวิ เตอร ผังงาน และรหสั เทยี ม ซอฟตแ วรร ะบบ กระบวนการสาํ คญั ในเขียนโปรแกรม ระบบปฏบิ ตั ิการ เครอ่ื งมือชวยเขยี นโปรแกรม กฎเกณฑข องภาษา โปรแกรมแปลภาษา ตัวแปรและชนดิ ขอมลู ซอฟตแ วรป ระยกุ ต ตัวดําเนนิ การ และนพิ จน4. โปรแกรมภาษา คําสัง่ ทาํ งาน ภาษาระดับต่ํา ภาษาระดับสงู คาํ ส่งั ควบคมุ ทิศทางโปรแกรม คอมไพเลอร คาํ สั่งควบคุมทศิ ทางแบบเลอื กตดั สินใจ อินเทอรพรีเตอร ซอรสโคด คาํ สั่งควบคุมทิศทางแบบวนรอบ ฟง กชน่ั (built in, user defined, vender) ออ็ บเจก็ ตโ คด ตัวแปรชุด ลิงคเ กอร สวนตอ ประสานกบั มนษุ ย เอก็ ซควิ ไฟล การเขยี นโปรแกรมแบบเชิงวตั ถุ รันไทม การจดั การขอผิดพลาดในการเขียนโปรแกรม5. รปู แบบของโปรแกรมคอมพิวเตอร การแจกจายโปรแกรม คอนโซลแอปพลิเคชนั่ เดสกท อปแอปพลิเคชนั่ เวบ็ แอปพลิเคชัน่

1.1 การทํางานของคอมพิวเตอร คอมพิวเตอร เปนเคร่ืองจักรท่ีทํางาน ประมวลผล หรือจัดการกับขอมูล ตามรายการชุดคําสั่งทเ่ี รียกวา “โปรแกรม” ซ่งึ โปรแกรมทถี่ กู ตดิ ต้ัง หรือถกู โหลดเขา สคู อมพิวเตอร จะเปน ผบู อกคอมพวิ เตอรวา เมอ่ื ใดใหทําการรับขอมูล รบั ขอมูลมาแลวจะประมวลผลขอมูลน้ันอยางไร และจะดําเนินการประมวลผลหรือคํานวณดวยวิธีใด แลวจะไดส่ิงใดเปนเอาตพุต โดยมีซีพียู (central processing unit: CPU) ทําหนาที่เปนผูดําเนินการชุดคาํ ส่งั ของโปรแกรมเหลา นี้ รูปที่ 1-1 การทาํ งานของคอมพิวเตอร คอมพิวเตอรทุกชนิด ทุกประเภท จะมีซีพียทู ําหนาที่เปนเหมือนสมอง ทําหนาที่คิดคํานวณประมวลผลไมวาจะเปนคอมพิวเตอรสวนบุคคล ท้ังแบบตั้งโตะ คอมพิวเตอรโนตบุคหรือแท็บเล็ตก็ตาม คอมพิวเตอรทุกเคร่ืองจะตองมีซีพียูทําหนาท่ีเปนหนวยประมวลผลหลัก ซีพียูสามารถประมวลผลโปรแกรมไดหลากหลายรูปแบบ แตไมวาจะทํางานกับโปรแกรมรูปแบบใดก็ตาม คอมพิวเตอรก็จะมีกระบวนการหลัก ๆ ที่มีพื้นฐานการทํางานคลาย ๆ กัน ยกตัวอยาง การประมวลผลโปรแกรมเกมคอมพิวเตอร ซีพียูจะประมวลผลขอมูลทผ่ี ใู ชปอนเขา มา แลวโตต อบกลับไปใหผูใช ท้ังนขี้ ้ึนอยกู ับคาํ สั่งของโปรแกรมน้ัน อีกตัวอยาง ไดแก การประมวลผลการทํางานของโปรแกรมเว็บเบราเซอร ท่ีซ่ึงสวนใหญสามารถรันไดบนเครื่องพีซีท่ัวไป เมอ่ื ผูใชตองการเขาเย่ียมชมเว็บไซต ผูใชจะตองระบุชื่อเว็บไซต โดยพิมพชื่อเว็บไซตน้ันลงในชอง “ที่อยูเวบ็ ไซต” ของโปรแกรมเว็บเบราเซอร แลวโปรแกรมเว็บเบราเซอรก็จะรับเอาขอมูลท่ีอยูเว็บไซตที่ผูใช

ปอนเขามาและนําไปประมวลผล โดยโปรแกรมเว็บเบราเซอรนั้นจะทําการเชื่อมตอกับโปรแกรมผูใหบริการเว็บ(web server) ท่ีซึ่งรันอยูบนเครื่องคอมพิวเตอร เครื่องท่ีผูใชระบุถึงตามท่ีอยูเว็บไซต โดยจะเช่ือมตอผานระบบเครือขายอินเทอรเน็ต เม่ือโปรแกรมผูใหบริการเว็บไดรับขอมูลคําส่ังจากโปรแกรมเว็บเบราเซอร โปรแกรมผูใหบริการเว็บก็จะทํางาน ทําการประมวลผลตามคําส่ังที่รองขอมา หลังจากนั้นโปรแกรมผูใหบริการเว็บก็จะสงขอมูลยอนกลับไปยังโปรแกรมเว็บเบราเซอรนั้น เม่ือโปรแกรมเว็บเบราเซอรไดรับขอมูลโตตอบจากเครอ่ื งคอมพวิ เตอรท ี่เปนผใู หบริการเว็บ แลว โปรแกรมเว็บเบราเซอรก็จะนําขอมูลท่ีได มาแสดงผลออกทางหนา จอ รปู ท่ี 1-2 การทํางานของโปรแกรมเว็บเบราเซอร จากรูปที่ 1-1 และ 1-2 จะเห็นวาพ้ืนฐานกระบวนการทํางานของคอมพิวเตอร ประกอบดวยขั้นตอนหลกั ๆ คอื การรบั ขอมลู การประมวลผลขอมูล และการแสดงผลขอมูล1.2 ความหมายของโปรแกรมคอมพิวเตอร พจนานุกรมฉบับราชบัณฑิตยสถาน ใหความหมายของ “โปรแกรม” หมายถึง กําหนดการ รายการแสดงสวนคําวา “โปรแกรมคอมพิวเตอร” พจนานุกรมฉบับราชบัณฑิตยสถานยังใหความหมายวา โปรแกรมคอมพิวเตอร หมายถึง คําส่ัง ชุดคําส่ัง หรือสิ่งอ่ืนใดที่นําไปใชกับเคร่ืองคอมพิวเตอร เพ่ือใหเครื่องคอมพิวเตอรทาํ งาน หรือเพอื่ ใหไดรับผลอยางหนึ่งอยางใด

สําหรับในวงการคอมพิวเตอร สวนใหญมีผูใหนิยามความหมายของคําวา “โปรแกรม” หรือ “โปรแกรมคอมพิวเตอร” ในความหมายใกลเคียงกัน พอสรุปไดวา โปรแกรมคอมพิวเตอร คือ ชุดคําส่ังที่ใชอธิบายช้ินงานหรืออธิบายกลุมงาน หรือขั้นตอนการทํางานที่ประมวลผลโดยคอมพิวเตอร ซึ่งชุดคําส่ังน้ีสามารถใชสั่งงานใหคอมพิวเตอรทํางานอยางใดอยางหนึ่งตามตองการได ท้ังนีส้ วนใหญชุดคาํ ส่ังของโปรแกรมคอมพิวเตอร จะมีการออกแบบใหมีลําดบั การทํางาน ตามขนั้ ตอนวธิ ี (algorithms) แลวนําไปเขียนดวยภาษาคอมพิวเตอร หรือโปรแกรมภาษา (programming language)1.3 ความหมายของซอฟตแวร คําวา “โปรแกรมคอมพิวเตอร” อาจมีความหมายรวมถึง ซอฟตแวร แอปพลิเคชั่น หรือ โปรแกรมในตําราของไทยเรา พบวา มกี ารใชคําวา “โปรแกรม” แทนคําในภาษาอังกฤษหลายคาํ เชน computer program,computer program และ software ซึ่งคําวา “ซอฟตแวร” และ “โปรแกรม” อาจจะมีความหมายเหมือนกันหรือใกลเ คียงกัน และมีการใชทดแทนกันไดในบางโอกาส แตอ ยา งไรก็ตามคําวาโปรแกรมกับซอฟตแวร ยังมคี วามความแตกตา งที่สามารถอธิบายไดดังน้ี “ซอฟตแวร” มีความหมายที่กวางกวาโปรแกรม คําวา ซอฟตแวร อาจใชในการอางถึงโปรแกรม ขอมูลไลบรารี (library) รวมถึงไฟลอ่ืน ๆ ที่เก่ียวของ เชน เอกสารคูมือ (help) ซึ่งส่ิงเหลาน้ีจะรวมกันทํางานอยางใดอยา งหนึง่ ในเคร่ืองคอมพิวเตอร (หรอื อปุ กรณอื่น ๆ เชน แทบ็ เล็ต สมารทโฟน หรือหุนยนตในโรงงาน หรอืเครื่องใชไฟฟาตาง ๆ) ใหสําเร็จตามเปาหมายที่ตองการ ดังนั้นอาจกลาวไดวา “โปรแกรม” ก็คือ สวนหน่ึงของซอฟตแวร ในขณะท่ีคาํ วา “โปรแกรม” ที่แทจริงมีความหมายเฉพาะเจาะจงกวาคือ หมายถึงชุดของคําส่ังท่ีจะถูกทํางานโดยเคร่ืองคอมพวิ เตอร หรือชุดคําสั่งท่ีจะทําใหคอมพิวเตอรท าํ งานตามตองการ ตวั อยา ง เชน ซอฟตแ วรท่ีใชบันทึกช่ือ และท่ีอยูของบุคคล เพื่อจัดเก็บในฐานขอมูล ในกรณีนซ้ี อฟตแวรน้ีประกอบดวยสวนของโปรแกรมท่ีใชบันทึก และสวนของฐานขอมูล ซ่ึงฐานขอมูลไมไดทําหนาที่โปรแกรมแตฐานขอมูลเปนเพียงสวนเสริมในการทําใหระบบการทํางานมีประโยชนและความสามารถมากขึ้น แตเม่ือรวมท้งั สองอยา งเขาดว ยกันเราเรียกวาเปน “ซอฟตแ วร” อีกนัยหนึง่ อาจกลาวไดวา ซอฟตแวรเกิดจากการนาํ เอาโปรแกรมหลาย ๆ โปรแกรม มารวมกันก็ได เชนซอฟตแ วรทช่ี อ่ื วาไมโครซอฟตออฟฟซ (Microsoft Office) มอี งคป ระกอบเปน โปรแกรมยอ ยตาง ๆ เชน โปรแกรมไมโครซอฟตเวิรด (Microsoft Word) โปรแกรมไมโครซอฟตเอ็กเซล (Microsoft Excel) โปรแกรมไมโครซอฟตพาวเวอรพ อยนต (Microsoft PowerPoint) และอนื่ ๆ เปนตน คําวา “โปรแกรม” เกิดมากอนท่ีจะมีการบัญญัติศัพทคําวา “ซอฟตแ วร” เมื่อป ค.ศ. 1804 : โจเซฟ มารีแจคการด (Joseph Marie Jacquard : 1752 - 1834) นักประดิษฐชาวฝรั่งเศส ไดป ระดิษฐเครื่องทอผาท่ีสามารถควบคุมการทอผาลายสีตา ง ๆ ดวยบัตรเจาะรู (punched – card) เขาเก็บคําสั่ง (โปรแกรม) ไวใ นบัตรเจาะรู เพอ่ื

ส่ังใหคอมพิวเตอร ทํางานทอผาตามลวดลายและสีที่เขาตองการ เครื่องทอผาของเขาเปนเสมือนคอมพิวเตอรในขณะท่ีบตั รเจาะรูก็ถือวา เปนโปรแกรม เชน เดียวกัน ตอมาโปรแกรมถูกพัฒนารูปแบบการจัดเก็บ โดยใชส่ือบันทึกขอมูลอิเล็กทรอนิกส เชน หนวยความจําแฟลช (flash memory) หรือฮารดไดรฟ (hard drive) เปนตน เพื่อใหการดึงขอมูลมาใชงานทําไดอยางรวดเร็วและอัตโนมัติ รปู ที่ 1-2 ตัวอยางบัตรเจาะรู ท่ีมา: https://upload.wikimedia.org/wikipedia/commons/f/f3/Punched_card.jpgสรปุ ความแตกตางระหวา ง โปรแกรม กับ ซอฟตแวร 1. ซอฟตแวร เปน คาํ กวาง ๆ ท่อี ยา งนอยตอ งมี “โปรแกรมคอมพิวเตอร” เปนสวนประกอบในการทํางาน ในขณะที่คําวา “โปรแกรม” เปนคําท่ีใชเพ่ืออธิบายชุดคําส่ัง หรือรหัสคําสั่งท่ีใชในการควบคุม การทาํ งานของเคร่ืองคอมพวิ เตอร (หรอื อปุ กรณอ่ืน ๆ ท่ีคลา ยกัน) 2. โปรแกรม มีมากอ นซอฟตแวร 3. ซอฟตแวร มักจะมสี วนประกอบท่ีเปน ไฟล ในขณะท่ีโปรแกรมอาจจะมีสวนประกอบที่เปนไฟล หรอื แมก ระท่งั การใชบัตรเจาะรแู บบกระดาษแข็งก็ได แอปพลเิ คชั่นซอฟตแวร ในยุคเริ่มตนโปรแกรมคอมพิวเตอรจะเขียนเปนกลุมชุดคําส่ัง แลวเก็บบันทึกคําส่ังเหลานั้นไวในลักษณะของแฟมขอมูล หรือไฟล (files) เมื่อตองการใชงานก็เรียกคําส่ังเหลาน้ันขึ้นมาทํางาน โดยการพิมพชื่อคําสั่งผานทางคียบอรด เน่ืองจากในยุคแรก ๆ โปรแกรมระบบปฏิบัติการจะมีการรับคําส่ังจากผูใชในรูปแบบตัวอักษร หรือแบบบรรทัดคําส่ัง (CUI: Character User Interface or Command-line User Interface)ระบบปฏิบัติการคอมพิวเตอรแบบ CUI ท่ีเคยไดรับความนิยม ไดแก ระบบปฏิบัติการดอส (DOS) ตอมาหลังจากที่บริษัทไมโครซอฟต (Microsoft) และแอปเปล (Apple) ไดเปดตัวระบบปฏบิ ัติการที่มีสวนติดตอผูใชแบบกราฟก(GUI: Graphic User Interface) ทําใหผูใชคอมพิวเตอรสามารถส่ังใหคอมพิวเตอรทํางานไดโดยการคลิก

ท่ีรูปกราฟก ท่ีเปนสัญลักษณแทนโปรแกรมบนหนาจอได จึงมีการเปล่ียนมาใชคําวา “แอปพลิเคช่ันซอฟตแวร”(application software) แทนคําวา “โปรแกรม” หมายเหตุ ผูเรียนอาจสับสนเนื่องจากมีตําราบางเลม แปลคํา “application software” วา “โปรแกรมประยุกต” ซ่งึ การแปลวา “ซอฟตแวรป ระยุกต” นา จะใหความหมายไดต รงกวา1.4 ประเภทของซอฟตแวร ซอฟตแวร แบงออกเปน หลายประเภท ในทีน่ ี้จะกลา วถงึ ซอฟตแ วร สองประเภท ใหญ ๆ ไดแ ก ซอฟตแ วรประยุกต กับ ซอฟตแ วรร ะบบ 1.4.1 ซอฟตแ วรประยุกต ซอฟตแวรประยุกต เปนซอฟตแวรท่ีถูกพัฒนาข้ึนมา เพ่ือควบคุมใหระบบคอมพิวเตอรทํางานในลักษณะงานแบบเฉพาะ ตามจุดมุงหมายอยางใดอยางหนึ่ง (หรือหลายอยาง) ตามความตองการของผูใชท่ีนอกเหนือจากการทํางานปกติท่ัวไป เชน ซอฟตแวรที่ใชในงานประมวลคํา ซอฟตแวรที่ใชในงานดานกราฟกซอฟตแวรท ี่ใชกับการคํานวณตวั เลขในลักษณะตารางทํางาน หรือซอฟตแวรเพ่ือความบันเทิง ท่ีพัฒนาข้ึนสําหรับการดูหนงั ฟง เพลง เปน ตน รปู ท่ี 1-3 ตวั อยา งของซอฟตแวรป ระยุกต 1.4.2 ซอฟตแ วรระบบ ซอฟตแวรร ะบบ เปนซอฟตแวรที่มฟี ง กชั่นทํางานพ้ืนฐาน ที่จาํ เปนตอการใชงานของผูใช (มนุษย)และจําเปนตอซอฟตแวรอ่ืน ๆ ในการเรียกใชซอฟตแวรประยุกต ซอฟตแวรระบบจะทํางานแบบเช่ือมตอกับฮารดแวรโดยตรง ซอฟตแวรระบบ แบงออกเปนสามกลุมใหญ ๆ ไดแก ระบบปฏิบัติการ (operating system:OS) โปรแกรมควบคมุ อุปกรณ (device driver) และโปรแกรมยูทิลิตี้ (utilities program) 1) ระบบปฏิบัติการ (operating system: OS)

ระบบปฏิบัติการ เรียกยอ ๆ วา โอเอส (OS) เปนศนู ยรวมของซอฟตแวรทมี่ คี วามสําคัญตอการจัดการระบบคอมพิวเตอร เชน การจัดการทรัพยากร และการใหบริการทั่วไปสําหรับซอฟตแวรอ่ืน ๆที่ทํางานบนระบบปฏิบัติการน้ัน สวนประกอบหลัก ๆ ของระบบปฏิบัติการ ไดแก สวนการจัดการโปรแกรมสวนควบคุมการบูต เชลคําสั่ง ตัวจัดการการแสดงผลหนาตาง (window) และสวนจัดการการทํางานสวนตอประสานผูใช เปนตน ตัวอยางงานที่ระบบปฏิบัติการดําเนินการ เชน การตรวจสอบการรับขอมูลจากคียบอรด และการแสดงผลขอมูลออกทางอุปกรณเอาตพุตตาง ๆ เชน จอภาพ หรือเคร่ืองพิมพ การจัดการหนวยความจํา การจัดการโปรแกรมยอยเพ่ือสลับการเขาใชงานซีพียู การจดั การกับแฟมขอมูลบนหนวยความจํารองตาง ๆ เปนตน ระบบปฏิบัติการจะเปนตัวกลางในการติดตอสื่อสารระหวางผูใช กับฮารดแวรคอมพิวเตอรระบบปฏิบัติการสวนใหญ จะมีโปรแกรมพื้นฐาน หรือซอฟตแวรประยุกตบางสวนเพิ่มเติมมาใหดวย ทําใหผูใชสามารถสรา งสรรคงานบางอยา งโดยใชร ะบบปฏิบัติการคอมพิวเตอรไดเลย รปู ท่ี 1-4 ตวั อยา งระบบปฏิบัติการคอมพวิ เตอร 2) โปรแกรมควบคมุ อุปกรณ (device driver) โปรแกรมควบคุมอุปกรณ มักจะเรียกทับศัพทวา “ดีไวซไดรเวอร” หรือ “ไดรเวอร”คือ โปรแกรมท่ีควบคุมการทํางานของอุปกรณ หรือฮารดแวร ที่ติดตั้งเพิ่มเติมอยูกับเคร่ืองคอมพิวเตอร ทั้งน้ีอปุ กรณแตละตัวจะตองมีโปรแกรมไดรเวอรท่ีเหมาะสมของมันเอง ตัวอยางอุปกรณที่ติดต้ังในเครื่องคอมพิวเตอรไดแก อุปกรณสวนควบคุมการรับขอมูล อุปกรณสวนควบคุมการแสดงผลขอมูล (การดจอ) อุปกรณสวนควบคุมการเช่ือมตอเครือขาย หรือการดแลน (network interface card) อุปกรณการควบคุมการประมวลผลดานเสียง

(sound card) เปนตน อุปกรณเหลาน้ีตองมีโปรแกรมไดรเวอร ซ่ึงโปรแกรมไดรเวอรของอุปกรณบางตัวอาจถูกตดิ ตั้งพรอ มกับระบบปฏิบัติการ แตอ ปุ กรณบางตัวจะตองติดตั้งโปรแกรมไดรเวอรเพม่ิ เติมตา งหาก รปู ที่ 1-5 ตวั อยางโปรแกรมควบคมุ อุปกรณป ระมวลดานเสียง (sound card) http://www.telecommander.com/pics/links/Sound%20Cards/sblive51oem/sblive51oem.htm 3) โปรแกรมยทู ิลิต้ี (utilities program) โปรแกรมยูทิลิต้ี เปนโปรแกรมคอมพิวเตอรที่ไมสามารถจัดเขากลุมใด ๆ ไดท้ังซอฟตแวรประยุกต หรือซอฟตแวรระบบ เปนโปรแกรมขนาดเล็กท่ีมีประโยชนถ ูกออกแบบมา เพื่อชวยในการบํารุงรักษา และการดูแลคอมพิวเตอร ใหงาย และมีความสะดวกขึ้น โปรแกรมยูทิลิตี้สามารถจะติดต้ังไดอยางอิสระ และไมไดเปนสวนหนึ่งของระบบปฏิบัติการ แมวาบางตัวจะถกู ติดต้ังมาพรอมกับระบบปฏิบัติการ ตัวอยางของโปรแกรมยูทิลิตี้ ไดแ ก โปรแกรมชวยในการสํารองขอมูล โปรแกรมชวยจัดการคลิปบอรด โปรแกรมชวยรักษาความปลอดภัยคอมพิวเตอร เชน โปรแกรมปองกันและกําจัดไวรัสคอมพิวเตอร เปนตน โปรแกรมชวยเพิ่มประสิทธิภาพระบบคอมพิวเตอร โปรแกรมชวยการบีบอัดขอมูล โปรแกรมจัดการการใชคียบอรดรวมกันโปรแกรมควบคุมการทํางานระยะไกล โปรแกรมแชรภ าพหนา จอ ฯลฯ

รปู ท่ี 1-6 ตัวอยางโปรแกรมยทู ิลิต้ี http://www.avg.com/content/dam/uis/PC-Tune-up-gif.gif http://3.bp.blogspot.com/-T0H7Ev0xkcY/Vi54rj4nqRI/AAAAAAAABAw/HCkAMnrmW5Y/s1600/ESET%2BNOD32%2BAntivirus%2B9.0.318.20%2B%255B2%255D.png นอกจากน้ียังมีซอฟตแวรประเภทอ่ืน ๆ ไดแก ซอฟตแวรที่เปนอันตราย หรือมัลแวร และโปรแกรมแปลภาษา (programming language) เปน ตน ซอฟตแวรทีเ่ ปนอันตรายหรือมัลแวร (Malicious software or malware) ซอฟตแวรที่เปนอันตราย หรือมัลแวร เปนซอฟตแวรที่พัฒนาข้ึนมาเพื่อทําอันตรายและสรางหายนะใหกับเคร่ืองคอมพิวเตอร เปนโปรแกรมท่ีไมพึงประสงค มักใชในการกออาชญากรรมท่ีเกี่ยวของกับคอมพิวเตอร แตบ างโปรแกรมอาจเกิดข้ึนมา เพราะความคกึ คะนองของผูเขียนโปรแกรม รปู ที่ 1-7 ตวั อยางซอฟตแ วรป องกันมัลแวร https://www.bleepstatic.com/swr-guides/m/malware-defense/malware-defense.jpg

โปรแกรมแปลภาษา โปรแกรมแปลภาษามีหนาท่ีในการแปลภาษาระดับสูง ใหเปนภาษาระดับตํ่าหรือภาษาเคร่ือง เน่ืองจากการพัฒนาซอฟตแวรนั้น นักพัฒนาซอฟตแวรสวนใหญจะเขียนชุดคําสั่งคอมพิวเตอรหรือพัฒนาโปรแกรมคอมพิวเตอรโดยใชภาษาระดับสูง แตคอมพิวเตอรไมสามารถเขาใจ หรือทํางานดวยชุดคําส่ังที่เขียนดวยภาษาระดับสูงไมได จึงตองแปล หรือแปลงชุดคําสั่งของโปรแกรมใหเปนภาษาระดับตํ่า โดยอาศัยโปรแกรมแปลภาษา และโปรแกรมแปลภาษาน่ีเอง ท่ีเปนเครื่องมือทําใหเกิดการสรางสรรค และพัฒนาโปรแกรมประยุกต หรือซอฟตแ วรประยกุ ต อื่น ๆ อกี มากมาย (ดูรายละเอยี ดในเรือ่ ง ตวั แปลภาษา) รปู ที่ 1-8 การทํางานของโปรแกรมแปลภาษา1.5 ความหมายของการเขยี นโปรแกรมคอมพิวเตอร (Programming) การเขียนโปรแกรมคอมพิวเตอร คือ กระบวนการของการพัฒนาและการใชชุดคําสั่งตาง ๆ เพ่ือควบคุมใหคอมพิวเตอรทํางานอยางใดอยางหนึ่ง ตามวัตถุประสงคที่ตองการ ซึ่งชุดคําส่ังเหลาน้ี เรียกวา “โปรแกรมคอมพิวเตอร” โปรแกรมคอมพิวเตอรจะถูกเขียนข้ึนดวย “ภาษาคอมพิวเตอร” และภาษาคอมพิวเตอรนี่เองท่ีใชเ ปน เครือ่ งมอื สําหรับการตดิ ตอสอ่ื สาร ระหวา งคนกบั เครื่องคอมพิวเตอร (ฮารด แวร)1.6 ภาษาโปรแกรม (programming language) ภาษาโปรแกรม หรือภาษาคอมพิวเตอร ในท่นี ี้แบงเปน 2 ระดับ ไดแก - ภาษาระดับต่าํ ท่ีใกลชิดกับเคร่ือง (ฮารด แวร) แตไกลจากมนุษย - ภาษาระดับสงู ท่ีใกลชิดกับมนุษย แตไกลจากเคร่ือง (ฮารด แวร)

1.6.1 ภาษาระดับต่ํา ภาษาระดับต่ําเปนภาษาที่เขียนดวยระบบเลขฐานสองหรอื ไบนารี่ ซึ่งประกอบดวยเลข 0 และ 1และเปนภาษาเดียวที่เคร่ืองคอมพิวเตอร (ซีพียู) เขาใจ โปรแกรมคอมพิวเตอรที่เขียนดวยภาษาระดับต่ํานี้เราเรียกวา รหัสเครื่อง (machine codes) หรือภาษาเคร่ือง หรือภาษาไบนารี นกั พัฒนาซอฟตแวรไมนิยมเขียนโปรแกรมคอมพิวเตอรดวยภาษาเคร่ืองโดยตรง เน่ืองจากมีความยุงยากในการเขียน เพราะวาภาษาเครื่องน้ันเปนภาษาที่ประกอบดวยตัวเลขฐานสอง คอื เลข 0 กบั 1 เทา น้ัน และอกี ประการหนึ่งก็คอื ภาษาเคร่ืองเปนภาษาท่ีไมมีมาตรฐาน หมายถึง ซีพียูแตละตัวก็จะมีภาษาเครื่องของตนเอง น่ันหมายความวา คอมพิวเตอรท่ีใชซีพียูตางเบอรกัน จะไมสามารถใชโปรแกรมเดียวกันได อาจเรียกไดวาเปนภาษาที่ขึ้นตรงตอฮารดแวร แตขอดีของโปรแกรมท่ีเขียนดว ยภาษาเครื่อง กค็ ือ ประมวลผลไดเร็วกวา โปรแกรมที่เขียนดวยภาษาระดับสงูก) คาํ ส่งั ภาษาเครื่องของโปรแกรมเวบ็ เบราเซอร chrome ข) คําสั่งภาษาเคร่อื งของโปรแกรม Line PC รูปท่ี 1-9 ตวั อยา งคําสั่งภาษาเคร่ืองของโปรแกรม Chrome และ โปรแกรม Line PC 1.6.2 ภาษาระดบั สูง ดังท่ีไดกลาวมาแลว โดยท่ัวไปนักพัฒนาซอฟตแวรสวนใหญจะเขียนชุดคําสั่งคอมพิวเตอร หรือพัฒนาโปรแกรมคอมพิวเตอร ดวยภาษาระดับสูง ซึ่งเปนภาษาท่ีประกอบดวยคํา และวลีจากภาษาอังกฤษ (หรือภาษาอื่น ๆ) ที่ใกลเคียงกับภาษามนุษย ที่มนุษยเขาใจแตคอมพิวเตอรจะไมเขาใจคอมพิวเตอรสามารถเขาใจไดเฉพาะโปรแกรมที่เขียนในระบบเลขฐานสอง หรือไบนารี่ ที่ซ่งึ ชุดคําสั่งในโปรแกรมจะประกอบดวยตัวเลข 0 และ 1 เทา น้ัน เราเรียกชุดคาํ ส่งั แบบนี้วา รหัสเครอื่ ง (machine code) หรือภาษาเครือ่ งซ่งึ เคร่อื งคอมพวิ เตอรจะเขาใจเฉพาะภาษาเครื่อง แตมนุษยไมเขาใจหรือยากตอ การทําความเขาใจ และไมสะดวก

ในการเขียนหรือแกไข ภาษาเครื่องจัดเปนภาษาระดับตํ่า การเขียนโปรแกรมดวยภาษาระดับสูง จําเปนตองมีตวั แปลภาษา สําหรับทําหนาท่ีแปลชุดคาํ ส่ังที่เขียนดวยภาษาระดับสูง ใหเปน ภาษาเครอื่ ง ตวั อยางภาษาระดับสูงที่ไดร ับความนิยมในกลุมนักพัฒนาซอฟตแวร ไดแก ภาษาซี/ซีพลัส พลัส (C/C++) ภาษาซีชารป (C#) ภาษาจาวา(Java) ภาษา (Python) ภาษารูบี้ (Ruby) เปน ตน รปู ที่ 1-10 ตัวอยางชุดคําส่ังคอมพิวเตอรท่ีเขียนดวยระดับสงู เชน ภาษาซี1.7 การแปลภาษา เนื่องจากคอมพิวเตอรไมเขาใจคําสั่งท่ีเขียนขึ้นจากภาษาระดับสูง ทําใหโปรแกรมน้ันไมสามารถสั่งใหคอมพิวเตอรทํางานตามความตองการได จึงจําเปนตองมีกระบวนการแปลคําส่ังที่เขียนจากภาษาระดับสูงใหเปนภาษาเครื่อง (ซึ่งเปนสาเหตุหนึ่งท่ีทําใหโปรแกรมท่ีเขียนดวยภาษาระดับสูง ประมวลผลไดชากวาโปรแกรมทเ่ี ขียนดวยภาษาระดับตํ่า) ตัวแปลคําสง่ั หรือโปรแกรมแปลภาษา มี 2 ลกั ษณะ คอื คอมไพเลอร (compiler) และอินเตอรพ รีเตอร (interpreter) 1.7.1 คอมไพเลอร (compiler) คอมไพเลอร เปนโปรแกรมแปลภาษา ที่จะทําการแปลชุดคําส่ังของโปรแกรมท่ีถูกเขียนข้ึนจากภาษาระดับสูง (source code) โดยการตรวจสอบและแปลชุดคาํ สั่งท้ังหมดทั้งโปรแกรม พรอ มกันในครั้งเดียวผลลัพธท่ีไดจากการแปลจะเก็บไวในรูปของภาษาเคร่ือง ท่ีเรียกวาออบเจ็กตโคด (object Code) หลังจากนั้นจะนําออบเจก็ ตโคด ท่ีได ไปทําการเชื่อมโยง หรือรวมเขา กับออบเจ็กตไฟลที่จําเปน ท่ีตัวแปลภาษาจัดเตรียมมาใหโดยใชตัวลิงค (linker) แลวเก็บบันทึกลงในไฟลเอกซคิว (executed file) เพ่ือนําไปใชงานตอไป ขอดีของการแปลโดยใชคอมไพเลอร คือ ผลโดยรวมในการทํางานใชเวลาดําเนินการคอนขางเร็ว สวนขอเสียคือ หากมีขอผิดพลาด

ในโปรแกรม คอมไพเลอรจะแจงขอ ผิดพลาดนน้ั ภายหลังจากไดทาํ การตรวจสอบโปรแกรมท้ังหมดแลว ซ่ึงจะทําใหไมสะดวกในการคนหาและแกไขจดุ บกพรอง โปรแกรมภาษาที่ใชการแปลแบบคอมไพเลอร ไดแก C/C++ เปนตน 1.7.2 อนิ เทอรพรีเตอร (Interpreter) อินเทอรพรีเตอร เปนตัวแปลภาษา ท่ีมีการแปลทีละคําส่ัง หลังจากแปลคําสั่งแตละคําสั่งแลวโปรแกรมจะส่งั ใหคอมพิเตอรปฏิบัติงานตามคําสั่งนั้นทันที หลังจากนั้นจงึ แปลคําสั่งตอไป ซึ่งหากพบขอผิดพลาดที่จุดใดโปรแกรมจะหยุดทํางานทันที ทาํ ใหงายตอการคนหาและแกไขจุดบกพรองของโปรแกรม ลักษณะการแปลคําสง่ั ของอินเทอรพรีเตอรจะคลายกับการแปลภาษาของลาม ตัวอยางโปรแกรมภาษาท่ีใชการแปลแบบอินเทอร-พรเี ตอร ไดแก ภาษาไพธอน (Python) ภาษารูบ้ี (Ruby) เปนตน 1.7.3 เปรียบเทียบการทํางานระหวางอินเตอรพรเี ตอรกบั คอมไพเลอร การแปลของอินเทอรพรีเตอรอาจจะใชเวลานอยกวาในการแปลแตละคําส่ัง แตภาพโดยรวมของการแปลจะใชเวลานานกวาคอมไพเลอร ตวั อยางเชน ในกรณีของโปรแกรมที่มีลักษณะการทํางานแบบวนซํ้า(loop) อินเทอรพรีเตอรจะทํางานไดชากวาคอมไพเลอร เนื่องจากอนิ เทอรพรีเตอร ตองทําการแปลคําส่ังในทุก ๆรอบของการวนซ้ํา สวนคอมไพเลอรจะแปลเพียงคร้ังเดียว แลวเก็บผลการแปลคําสั่งไวในออบเจ็กตโคด ทําใหการทํางานแบบวนซํ้าทําไดอ ยางรวดเร็ว แตขอเสียของการเก็บออบเจ็กตโคดไวในหนวยความจําของคอมไพเลอรกค็ ือ ตอ งมีการเกบ็ ท้งั ตัวโปรแกรมที่เปนรหสั ตนฉบับ (source code) ออบเจก็ ตโ คด (object code) และสว นการทาํ งานของคอมไพเลอร ไวใ นหนวยความจําพรอ มกัน ทาํ ใหสน้ิ เปลืองเนอ้ื ท่ีในหนว ยความจํามากกวาการใชตัวแปลภาษาแบบอินเทอรพรีเตอร

รปู ท่ี 1-11 การทํางานของคอมไพเลอร กับอินเทอรพ รีเตอร 1.7.4 รหัสตนฉบับ (source code) รหัสตนฉบับ หรือท่ีนิยมเรียกทับศัพทวา “ซอรสโคด” คือ ชุดคําสั่งหรือโปรแกรมท่ีเขียนขึ้นดว ยภาษาระดับสูง กอนจะถูกนําไปแปลเปนรหัสเคร่ือง รหัสตนฉบับน้ีสามารถเขียนขึ้นโดยใชโปรแกรมประเภทแกไขขอความ (text editor) เชน Notepad เปนตน โดยท่ีเราสามารถบันทึกเก็บชุดคําส่ังรหัสตนฉบับน้ีไวในรูปแบบแฟมขอมูลหรือไฟลขอมูล ท่ีเรียกวา ซอรสไฟล (source file) เพ่ือเก็บไวใชสําหรับการปรับปรุงเปลี่ยนแปลงในโอกาสตอไปได รปู ที่ 1-12 ตวั อยางชุดคําสงั่ ในซอรสโคดท่ีเขียนดวยภาษาซี 1.7.5 ตัวลิงค (Linker)

ในภาษาคอมพิวเตอรระดับสูง เชน ภาษา C/C++ สวนใหญจะมีโปรแกรมยอย หรือชุดคําส่ังท่ีเปนตัวชวยอํานวยความสะดวกใหกับผูเขียนโปรแกรม ซึ่งเราเรียกวา ฟงกช่ัน (functions) ฟงกช ั่นเหลาน้ีจะถูกจัดเก็บไวในออบเจ็กตไฟล ท่ีติดมาพรอมกับชุดของคอมไพเลอร โดยในคอมไพเลอรจะมีตัวลิงค (linker)ท่ที ําหนาท่ีเชื่อมโยงคําสั่ง หรอื รวมเอาคาํ สั่งจากโปรแกรมยอยท่ีจําเปนท่ีตองทํางานรว มกัน ระหวางออบเจ็กตไฟลท่ีเกิดจากซอรสไฟลที่นักพัฒนาโปรแกรมเขียนข้ึน กับออบเจ็กตไฟลที่เก็บในฟงกชั่นตัวชวย ท่ีคอมไพเลอรเตรียมมาให เขาดว ยกัน แลว จัดเก็บลงในไฟลใหมที่สามารถใชงานได หรือรนั ไดดวยตัวเองได เราเรียกไฟลท ี่เกิดขึ้นใหมน้ีวา ไฟลเอกซคิว (executable file) ซ่ึงจะมีนามสกุลเปน .exe ในตัวอยางในรูปที่ 11-3 นี้เราเก็บซอรสโคดไวในซอรส ไฟลชอ่ื วา program1.c หลังจากคอมไพลและลิงคเสร็จแลว จะไดไ ฟลเอกซคิว คือ program1.exe เปนตน รปู ที่ 1-13 อธิบายการทาํ งานของคอมไพเลอรแ ละลิงคเกอรข องภาษาซี 1.7.6 ไฟลเ อกซคิว (executable file) ไฟลเอกซคิว program1.exe เปนไฟลโปรแกรมท่ีถูกแปลเปนภาษาเคร่ือง และมีการลิงคแลวโดยทใ่ี นการลงิ คนั้น ตวั ลิงคไดนาํ เอาฟงกช ั่น หรือคาํ สั่งทํางานท่ีจาํ เปน จากออบเจก็ ตไฟลของตัวแปลภาษา มาเก็บรวมเอาไวในไฟลเอกซคิวนี้เรียบรอ ยแลว จึงทําใหสามารถนาํ ไฟลน้ีไปใชงานหรือรัน ในคอมพิวเตอรเคร่ืองไหนก็ไดทีม่ ีส่ิงแวดลอมในการใชง าน หรอื สง่ิ แวดลอ มในการรัน (runtime) ทเี่ ขากันได โดยไมข้ึนอยูกับซีพียู

รปู ที่ 1-14 ตัวอยา งไฟลเ อ็กซคิวท่ีเกิดจากกระบวนการทาํ งานของตัวแปลภาษาซี 1.7.7 ส่งิ แวดลอมในการรนั โปรแกรม (runtime environment) เวลาทใี่ ชไปในขณะท่ีคอมพิวเตอรปฏิบัติการตามโปรแกรมใด โปรแกรมหนึง่ สิ่งแวดลอมในการรันโปรแกรม คือ โครงสรางพื้นฐานท่ีจําเปนในการเรียกใชโปรแกรม สําหรับข้นั ตอนการดําเนินการของการใชง านซอฟตแวรใหดูท่ีเวลาในการรัน (โปรแกรมเฟสวงจร) ระบบการทํางานที่เรียกวาระบบการทํางานสวนใหญดําเนินการบางสวนของรูปแบบการประหารนี้เปนในทางตรงกันขามกับเฟสวงจรรันไทมของโปรแกรมในระหวางที่ระบบรันไทมเปนในการดําเนินงาน ภาษาสวนใหญมีรูปแบบของระบบรันไทมซ่ึงดําเนินการควบคุมลําดับที่การทํางานที่ถูกระบุในแงของภาษาท่ีไดรับการดําเนินการ กวาปท่ีความหมายของคําวา 'ระบบรันไทม' ไดรับการขยายไปถึงเกือบพฤติกรรมใด ๆ ท่ีมีความมุงม่ันแบบไดนามกิ ระหวา งการดาํ เนินการ บางครง้ั อาจจะใชคาํ วา Virtual Machine https://th.answers.yahoo.com/question/index?qid=20110616051454AAHysKi 1.7.8 สงิ่ แวดลอมในการพฒั นาโปรแกรม (Integrated Development Environment: IDE) ปจจุบันน้ีตัวแปลภาษาคอมพิวเตอรสวนใหญ มักจะมีมาดวยกันเปนแพ็คเกจ (package)ท่ีเรียกวา ส่ิงแวดลอมในการพัฒนาโปรแกรม (Integrated Development Environment: IDE) โดยท่ัวไป

ในแพ็คเกจน้ีจะประกอบดวย โปรแกรมอิดิเตอร ตวั แปลภาษา ตัวลงิ ค และตวั โหลด หรือรันโปรแกรม โปรแกรมและเคร่อื งมอื ตาง ๆ เหลา น้จี ะชวยใหนักพัฒนาโปรแกรมสามารถทํางานไดสะดวก และสรา งสรรคงานไดเร็วข้ึน รปู ท่ี 1-14 ตัวอยา ง การพัฒนาโปรแกรมดวยภาษาซี โดยใช IDE เปน โปรแกรม Dev-C++ รูปท่ี 1-15 โปรแกรม NetBeans ตวั อยา ง IDE ของการพัฒนาโปรแกรมดวยภาษาจาวา

และ IDE ของตัวแปลภาษา C มีหลากหลายผูผลิต นักพัฒนาโปรแกรมสามารถเลือกใชไดตามความพอใจและความเหมาะสม การรนั โปรแกรม (executing a program) คอมพิวเตอร

1.7 รูปแบบของแอปลิเคช่นั1.7.1 คอนโซลแอปพลเิ คชั่น รปู ที่ 1-16 ตวั อยา งของโปรแกรมแบบคอนโซลแอปพลิเคช่นั 1.7.2 เดสกทอปแอปพลิเคชั่น รปู ที่ 1-17 ตวั อยา งของโปรแกรมแบบเดสกท อปแอปพลิเคช่ัน1.7.3 เว็บแอปพลิเคช่ัน

รปู ที่ 1-18 ตัวอยางของโปรแกรมแบบเวบ็ แอปพลิเคชั่นสรปุ ความแตกตางระหวาง โปรแกรม กับ ซอฟตแวร 1. ซอฟตแวร เปนคํากวาง ๆ ท่อี ยา งนอ ยตอ งมี “โปรแกรมคอมพวิ เตอร” เปน สวนประกอบในการทํางาน ในขณะที่คําวา “โปรแกรม” เปนคําท่ีใชเพ่ืออธิบายชุดคําส่ัง หรือรหัสคําส่ังท่ีใชในการควบคุม การทาํ งานของเครื่องคอมพวิ เตอร (หรอื อุปกรณอื่น ๆ ทีค่ ลายกัน) 2. โปรแกรม มีมากอนซอฟตแวร 3. ซอฟตแ วร มักจะมสี วนประกอบท่ีเปน ไฟล ในขณะท่ีโปรแกรมอาจจะมีสวนประกอบท่ีเปนไฟล หรือ แมก ระท่งั การใชบัตรเจาะรแู บบกระดาษแข็งก็ได


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook