วันพฤหัสบดีที่ 23 พฤษภาคม พ.ศ. 2556

ตัวแปลภาษาคอมพิวเตอร์



    ตัวแปลภาษาคอมพิวเตอร์ (Translator)           

                                                           

                                                      



      การพัฒนาโปรแกรมคอมพิวเตอร์ ผู้เขียนโปรแกรมหรือที่เรียกว่าโปรแกรมเมอร์นั้น จะเลือกใช้ภาษาให้เหมาะสมกับลักษณะงานและความถนัด ของผู้เขียนโปรแกรม โปรแกรมที่เขียนขึ้นหรือที่เรียกว่าโปรแกรมต้นฉบับ จึงมีลักษณะโครงสร้างของภาษาที่แตกต่างกันออกไป ในการทำงานของคอมพิวเตอร์นั้น คอมพิวเตอร์จะไม่สามารถเข้าใจภาษาที่ใก้ลเคียงกับภาษามนุษย์ที่เรียกว่า ภาษาระดับสูง เนื่องจากคอมพิวเตอร์จะรับข้อมูลที่เป็นสัญญาณไฟฟ้าซึ่งแทนด้วยเลขฐานสอง (0 หรือ 1) หรือที่เรียกว่า ภาษาเครื่อง เท่านั้น ดังนั้นในการสั่งให้คอมพิวเตอร์ทำงาน จึงจำเป็นจะต้องมีตัวกลางที่ทำหน้าที่เสมือนเป็นนักแปลภาษา โปรแกรมที่นำมาใช้เรียกว่าโปรแกรมแปลภาษาคอมพิวเตอร์ ซึ่งจะทำหน้าที่แปลภาษาระดับสูงที่เป็นโปรแกรมต้นฉบับ ให้อยู่ในรูปของโปรแกรมเรียกใช้งานที่เครื่องคอมพิวเตอร์เข้าใจและสามารถทำงานได้ ตัวแปลภาษาสามารถแบ่งตามลักษณะการทำงานได้เป็น 3 ประเภท
     1. คอมไพเลอร์ (Compiler)
         เป็นตัวแปลภาษาระดับสูง เช่น ภาษาปาสคาล ภาษาโคบอลและภาษาฟอร์แทรกให้เป็นภาษาเครื่อง การทำงานจะใช้หลักการแปลโปรแกรมต้นฉบับ ทั้งโปรแกรมเรียกใช้งาน ซึ่งจะถูกบันทึกไว้ในลักษณะของแฟ้มข้อมูลหรือไฟล์ เมื่อต้องการเรียกใช้งานโปรแกรมก็สามารถเรียกจากไฟล์เรียกใช้งาน โดยไม่ต้องทำการแปลหรือคอมไพล์อีก ทำให้การทำงานเป็นไปอย่างรวดเร็ว ขณะที่คอมไพล์โปรแกรมต้นฉบับที่เขียนขึ้นด้วยภาษาระดับสูง คอมไพเลอร์จะตรวจสอบโครงสร้างไวยากรณ์ของคำสั่งและข้อมูลที่จะใช้ในการคำนวณ และเปรียบเทียบต่อจากนั้นคอมไพเลอร์จะสร้างรายการข้อผิดพลาดของโปรแกรม (Program listing) เพื่อใช้เก็บโปรแกรมต้นฉบับและคำสั่งที่เขียนไม่ถูกต้องตามกฏ หรือโครงสร้างของภาษานั้น ๆ ไฟล์นั้นมีประโยชน์ในการช่วยโปรแกรมเมอร์ในการแก้ไขโปรแกรม (debug)
     2. อินเตอร์พรีเตอร์ (interpreter)
         เป็นตัวแปลระดับสูงเช่นเดียวกับคอมไพเลอร์แต่จะแปลพร้อมกับทำงานตามคำสั่งทีละคำสั่งตลอดไปทั้งโปรแกรม ทำให้การแก้ไขโปรแกรมกระทำได้ง่าย และรวดเร็ว การแปลโดยใช้อินเตอร์พรีเตอร์จะไม่สร้างโปรแกรมเรียกใช้งาน ดังนั้นจะต้องทำการแลใหม่ทุกครั้งที่มีการเรียกใช้งาน ตัวอย่างภาษาที่ใช้ตัวแปลอินเตอร์พรีเตอร์ เช่น ภาษาเบสิก (BASIC)
     3. แอสเซมเบลอ (assembler) 
         เป็นตัวแปลภาษาแอสเซมบลี (assembly) ซึ่งเป็นภาษาระดับต่ำให้เป็นภาษาเครื่อง



ตัวอย่างโปรแกรมที่ใช้ตัวคอมไพเลอร์เป็นตัวแปล










ภาษาคอมพิวเตอร์



ภาษาคอมพิวเตอร์ ( computer programming language)




ชนิดของภาษาคอมพิวเตอร์
         ภาษาคอมพิวเตอร์เริ่มมาจากในมหาวิทยาลัย หรือในหน่วยงานของรัฐบาลที่ต้องการทำงานบางอย่าง นอกจากนี้ บางภาษาเกิดขึ้นเพราะความต้องการด้านวิทยาศาสตร์ วิศวกรรมศาสตร์และอื่น ๆ อีกมากมาย ทำให้มีภาษาเกิดขึ้นเป็นจำนวนมาก
         จากการที่มีภาษาจำนวนมากมายนั้น ทำให้ต้องกำหนดระดับของภาษาคอมพิวเตอร์ เพื่อช่วยในการแบ่งประเภทของภาษาเหล่านั้น การกำหนดว่าเป็นภาษาระดับต่ำหนือภาษาระดับสูง จะขึ้นอยู่กับภาษานั้นใกล้เคียงกับเครื่องคอมพิวเตอร์ (ใกล้เคียงกับรหัส 0 และ 1 เรียกว่า ภาษาระดับต่ำ) หรือว่าใกล้เคียงกับภาษาที่มนุษย์ใช้ (ใกล้เคียงกับภาษาอังกฤษ เรียกว่า ภาษาระดับสูง)
       


 ภาษาเครื่อง (Machine Language)
            ก่อนปีค.ศ. 1952 มีภาษาคอมพิวเตอร์เพียงภาษาเดียวเท่านั้นคือ ภาษาเครื่อง (Machine Language) ซึ่งเป็นภาษาระดับต่ำที่สุด เพราะใช้เลขฐานสองแทนข้อมูล และคำสั่งต่าง ๆ ทั้งหมดจะเป็นภาษาที่ขึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ หรือหน่วยประมวลผลที่ใช้ นั่นคือปต่ละเครื่องก็จะมีรูปแบบของคำสั่งเฉพาะของตนเอง ซึ่งนักคำนวณและนักเขียนโปรแกรมในสมัยก่อนต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งต่า ๆ ทำให้การเขียนโปรแกรมยุ่งยากมาก นักคอมพิวเตอร์จึงได้พัฒนาภาษาแอสเซมบลีขึ้นมาเพื่อให้สามารถเขียนโปรแกรมได้ง่ายขึ้น
         

ภาษาแอสเซมบลี (Assembly Language)
            ต่อมาในปีค.ศ. 1952 ได้มีการพัฒนาโปรแกรมภาษาระดับต่ำตัวใหม่ ชื่อภาษาแอสเซมบลี (Assembly Language) โดยที่ภาษาแอสเซมบลีใช้รหัสเป็นคำแทนคำสั่งภาษาเครื่อง ทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้ง่ายขึ้น ถึงแม้ว่าการเขียนโปรแกรมจะยังไม่สะดวกเท่ากับการเขียนโปรแกรมภาษาอื่น ๆ ในสมัยนี้ แต่ถ้าเปรียบเทียบในสมัยนั้นก็ถือว่าเป็นการพัฒนาไปสู่ยุคของการเขียนโปรแกรมแบบใหม่ คือใช้สัญลักษณ์แทนเลข 0 และ 1 ของภาษาเครื่อง ซึ่งสัญลักษณ์ที่ใช้จะเป็นคำสั่งสั้น ๆ ที่จะได้ง่าย เรียกว่า นิมอนิกโคด (mnemonic code) เช่น



สัญลักษณ์นิวมอนิกโคด
ความหมาย
A
C
MP
STO
การบวก (Add)
การเปรียบเทียบ (Compare)
การคูณ (Muliply)
การเก็บข้อมูลในหน่วยความจำ (Store)

ตัวอย่างนิวมอนิกโคด


            ถึงแม้ว่านิวมอนิกโคดที่ใช้จะไม่ใช้คำในภาษาอังกฤษ แต่ก็เป็นสัญลักษณ์ที่สื่อความหมายให้ผู้ใช้สามารถจดจำได้ง่ายกว่าสัญลักษณ์เลข 0 และ 1 ผู้เขียนโปรแกรมภาษาแอสเซมบลียังสามารถกำหนดชื่อของที่เก็บข้อมูลในหน่วยความจำเป็นคำในภาษาอังกฤษ แทนที่จะเป็นเลขที่ตำแหน่งในหน่วยความจำ เช่น TOTAL , INCOME เป็นต้น แต่ข้อจำกัดของภาษาภาษาแอสเซมบลี คือ จะแตกต่างกันไปในแต่ละเครื่องเช่นเดียวกับภาษาเครื่อง ผู้เขียนโปรแกรมภาษาแอสเซมบลีต้องใช้ แอสเซมเบลอ (Assembler) แปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง เพื่อให้คอมพิวเตอร์ทำงานตามต้องการ
         

ภาษาระดับสูง (High Level Language)
            ในปีค.ศ. 1960 ได้มีการพัฒนา ภาษาระดับสูง (High Level Language) ขึ้น ภาษาระดับสูงจะใช้คำในภาษาอังกฤษแทนคำสั่งต่าง ๆ รวมทั้งสามารถใช้นิพจน์ทางคณิตศาสตร์ได้ด้วย ทำให้นักเขียนโปรแกรมสามารถใช้เวลามุ่งไปในการศึกษาถึงทางแก้ปัญหาเท่านั้น ไม่ต้องเป็นกังวลว่าคอมพิวเตอร์จะทำงานอย่างไรอีกต่อไป
            ภาษาระดับสูงนี้ถือว่าเป็น ภาษายุคที่สาม (third-generation language) ซึ่ง ทำให้เกิดการประมวลผลข้อมูลเพิ่มมากขึ้นอย่างมหาศาลระหว่างปี ค.ศ. 1960 ถึง ค.ศ. 1970 และมีผู้หันมาใช้คอมพิวเตอร์กันมากขึ้น โดยสังเกตได้จามเครื่องเมนเฟรมจากจำนวนร้อยเครื่องเพิ่มขึ้นเป็นหมื่น เครื่อง อย่างไรก็ตาม ภาษาระดับสูงก็ยังคงต้องการตัวแปลภาษาให้เป็นภาษาเครื่องเพื่อสั่งให้ เครื่องทำงานต่อไป ตัวแปลภาษาที่นิยมใช้งานกันโดยทั่วไปจะเป็นแบบคอมไพเลอร์ ซึ่งแต่ละภาษาก็มีคอมไพเลอร์ไม่เหมือนกัน รวมทั้งคอมไพเลอร์แต่ละตัวก็จะต่างกันไปบนเครื่องแต่ละชนิดด้วย เช่น ถ้าเขียนโปรแกรมภาษา COBOL บนเครื่องไมโครคอมพิวเตอร์ ก็จะต้องเลือกใช้คอมไพเลอร์ภาษา COBOL ที่ทำงานบนเครื่องไมโครคอมพิวเตอร์ ซึ่งการเขียนโปรแกรมภาษาหนึ่งภาษาใดบนเครื่องที่ต่างกันอาจจะแตกต่างกันได้ เพราะคอมไพเลอร์ที่ใช้ต่างกันนั่นเอง
            ภาษาคอมพิวเตอร์บางภาษาได้ถูออแบบมาให้ใช้แก้ปัญหางานเฉพาะบางอย่าง เช่น การควบคุมหุ่นยนต์ การสร้างภาพกราฟฟิก เป็นต้น แต่ภาษาคอมพิวเตอร์โดยมากจะมีความยืดหยุ่นให้ใช้งานทั่ว ๆ ไปได้ เช่น ภาษา BASIC ภาษา COBOL หรือภาษา FORTRAN เป็นต้น และนอกจากนี้ยังมีภาษา C ที่ได้รับความนิยมมากเช่นกัน
        

 ภาษาระดับสูงมาก (Very high-level Language)
            เป็นภาษายุคที่ 4 (fourth-generation language) หรือ 4GLs จะเป็นภาษาที่ใช้เขียนโปรแกรมได้สั้นกว่าภาษาในยุคก่อน ๆ การทำงานบางอย่างสามารถใช้เพียง 5 ถึง 10 บรรทัดเท่านั้น ในขณะที่ถ้าเขียนด้วยภาษา อาจต้องใช้ถึง 100 บรรทัด โดยพื้นฐานแล้ว ภาษาในยุคที่ 4 นี้มีคุณสมบัติที่แยกจากภาษาใยุคก่อน ๆ อย่างชัดเจน กล่าวคือภาษาในยุคก่อนนั้นใช้หลักการของ การเขียนโปรแกรมแบบโพรซีเยอร์ (procedurl language) ในขณะที่ภาษาในยุคที่ 4 จะเป็นแบบ ไม่ใช้โพรซีเยอร์ (nonprocedurl language) ผู้เขียนโปรแกรมเพียงแต่กำหนดว่าต้องการให้โปรแกรมทำอะไรบ้างก็สามารถเขียนโปรแกรมได้ทันที โดยไม่ต้องทราบว่าทำได้อย่างไร ทำให้การเขียนโปรแกรมสามารถทำได้ง่ายและรวดเร็ว








0.gif



ประเภทของซอฟต์แวร์


ซอฟต์แวร์สำหรับเครื่องคอมพิวเตอร์สามารถแบ่งออกได้เป็น 2 ประเภทคือ 

 


1. ซอฟต์แวร์สำหรับระบบ (System Software)
คือ ชุดของคำสั่งที่เขียนไว้เป็นคำสั่งสำเร็จรูป ซึ่งจะทำงานใกล้ชิดกับคอมพิวเตอร์มากที่สุด เพื่อคอยควบคุมการทำงานของฮาร์ดแวร์ทุกอย่าง และอำนวยความสะดวกให้กับผู้ใช้ในการใช้งาน ซอฟต์แวร์หรือโปรแกรมระบบที่รู้จักกันดีก็คือ DOS, Windows, Unix, Linux รวมทั้งโปรแกรมแปลคำสั่งที่เขียนในภาษาระดับสูง เช่น ภาษา Basic, Fortran, Pascal, Cobol, C เป็นต้น นอกจากนี้โปรแกรมที่ใช้ในการตรวจสอบระบบเช่น Norton’s Utilities ก็นับเป็นโปรแกรมสำหรับระบบด้วยเช่นกัน

2. ซอฟต์แวร์ประยุกต์
 
(Application Software)
คือ ซอฟต์แวร์หรือโปรแกรมที่มำให้คอมพิวเตอร์ทำงานต่างๆ ตามที่ผู้ใช้ต้องการ ไม่ว่าจะด้านเอกสาร บัญชี การจัดเก็บข้อมูล เป็นต้น ซอฟต์แวร์ประยุกต์สามารถจำแนกได้เป็น 2 ประเภท คือ

2.1 ซอฟต์แวร์สำหรับงานเฉพาะด้าน คือ โปรแกรมซึ่งเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ บางที่เรียกว่า User’s Program เช่น โปรแกรมการทำบัญชีจ่ายเงินเดือน โปรแกรมระบบเช่าซื้อ โปรแกรมการทำสินค้าคงคลัง เป็นต้น ซึ่งแต่ละโปรแกรมก็มักจะมีเงื่อนไข หรือแบบฟอร์มแตกต่างกันออกไปตามความต้องการ หรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมได้ เพื่อให้ตรงกับความต้องการของผู้ใช้ และซอฟต์แวร์ประยุกต์ที่เขียนขึ้นนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงเป็นตัวพัฒนา


2.2 ซอฟต์แวร์สำหรับงานทั่วไป เป็นโปรแกรมประยุกต์ที่มีผู้จัดทำไว้ เพื่อใช้ในการทำงานประเภทต่างๆ ทั่วไป โดยผู้ใช้คนอื่นๆ สามารถนำโปรแกรมนี้ไปประยุกต์ใช้กับข้อมูลของตนได้ แต่จะไม่สามารถทำการดัดแปลง หรือแก้ไขโปรแกรมได้ ผู้ใช้ไม่จำเป็นต้องเขียนโปรแกรมเอง ซึ่งเป็นการประหยัดเวลา แรงงาน และค่าใช้จ่ายในการเขียนโปรแกรม นอกจากนี้ ยังไม่ต้องเวลามากในการฝึกและปฏิบัติ ซึ่งโปรแกรมสำเร็จรูปนี้ มักจะมีการใช้งานในหน่วยงานมราขาดบุคลากรที่มีความชำนาญเป็นพิเศษในการเขียนโปรแกรม ดังนั้น การใช้โปรแกรมสำเร็จรูปจึงเป็นสิ่งที่อำนวยความสะดวกและเป็นประโยชน์อย่างยิ่ง ตัวอย่างโปรแกรมสำเร็จรูปที่นิยมใช้ได้แก่ MS-Office, Lotus, Adobe Photoshop, SPSS, Internet Explorer และ เกมส์ต่างๆ เป็นต้น





 

ซอฟต์แวร์


 
ซอฟต์แวร์  
                               
                           

   

ความหมายของซอฟต์แวร์

ซอฟต์แวร์ (Software) หมายถึง ส่วนที่ทำหน้าที่เป็นคำสั่งที่ใช้ควบคุมการทำงานของเครื่องคอมพิวเตอร์ หรืออาจเรียกว่า “ โปรแกรม ” ก็ได้ ซึ่งหมายถึงคำสั่งหรือชุดคำสั่ง สามารถใช้เพื่อสั่งให้คอมพิวเตอร์ทำงาน เราต้องการให้เครื่องคอมพิวเตอร์ทำอะไรก็เขียนเป็นคำสั่งที่จะต้องสั่งเป็นขั้นตอน และแต่ละขั้นตอนต้องทำอย่างละเอียดและครบถ้วนก็จะเรียกว่า นักเขียนโปรแกรม (Programmer) สำหรับการเขียนโปรแกรมดังกล่าวใช้ภาษาที่ใช้ในการเขียนโปรแกรมโดยเฉพาะ หรือหมายถึง ภาษาที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ เช่น ภาษาเบสิก ภาษาโคบอล ภาษาปาสคาล เป็นต้น โปรแกรมที่เขียนขึ้นมาก็จะนำไปใช้ในงานเฉพาะอย่าง เช่น โปรแกรมสต็อกสินค้าคงคลัง โปรแกรมคำนวณภาษี โปรแกรมคิดเงินเดือนพนักงาน เป็นต้น





 

    

แผนผังซอฟต์แวร์



 แผนผัง แสดงการแบ่งประเภทของซอฟต์แวร์