หน่วยการเรียนรู้ที่ 1

15
ประวัติและขั ้นตอนการพัฒนาโปรแกรมภาษาซี

Transcript of หน่วยการเรียนรู้ที่ 1

Page 1: หน่วยการเรียนรู้ที่ 1

ประวตและขนตอนการพฒนาโปรแกรมภาษาซ

Page 2: หน่วยการเรียนรู้ที่ 1

ภาษาซเกดขนในป ค.ศ. 1972 ผคดคนคอ Dennis RittchieโดยพฒนามาจากภาษาB และ ภาษา BCPL

ป ค.ศ. 1978 Brain Kernighan ไดรวมกบ Dennis Ritchie มาพฒนามาตรฐานของภาษาซ เรยกวา K&R ท าใหมผสนใจมากขน จงเกดภาษาซอกหลายรปแบบ

ป 1988 Ritchie จงไดก าหนดมาตรฐานของภาษาซเรยกวา ANSI C เพอใชเปนตวก าหนดมาตรฐานในการสรางภาษาซรนตอไป

Page 3: หน่วยการเรียนรู้ที่ 1

ภาษาซระดบกลางเหมาะสมส าหรบการเขยนโปรแกรมแบบโครงสราง ภาษาซ เปนภาษาทมความยดหยนมากคอใชงานไดกบเครองตางๆไดและปจจบนภาษาซเปนภาษาพนฐานของภาษาโปรแกรมรนใหม ๆ เชน C++

Page 4: หน่วยการเรียนรู้ที่ 1
Page 5: หน่วยการเรียนรู้ที่ 1

ใช editor เขยนโปรแกรมภาษาซและท าการบนทกไฟลใหมนามสกลเปน .c เชน work.c เปนตน

editor คอ โปรแกรมทใชส าหรบการเขยนโปรแกรมโดยตวอยางของ editor ทนยมน ามาใชในการเขยนโปรแกรมไดแก Notepad,Edit ของ Dos ,TextPad และ EditPlus เปนตน

Page 6: หน่วยการเรียนรู้ที่ 1

น า source code จากขนตอนท 1 มาท าการคอมไพล เพอแปลจากภาษาซทมนษยเขาใจไปเปนภาษาเครองทคอมพวเตอรเขาใจได

หากเกดขอผดพลาด จะแจงใหผเขยนโปรแกรมทราบ ผเขยนโปรแกรมจะตองกลบไปแกไขโปรแกรม และท าการคอมไพลโปรแกรมใหมอกครง

หากไมพบขอผดพลาด คอมไพเลอรจะแปลไฟล source code จากภาษาซไปเปนภาษาเครอง (ไฟลนามสกล .obj) เชนถาไฟล source code ชอ work.c กจะถกแปลไปเปนไฟล work.obj ซงเกบภาษาเครองไวเปนตน

Page 7: หน่วยการเรียนรู้ที่ 1

เปนตวแปลภาษารปแบบหนง มหนาทหลกคอการแปลภาษาโปรแกรมทมนษยเขยนขนไปเปนภาษาเครอง โดยคอมไพเลอรของภาษาซ คอ C Compiler ซงหลกการทคอมไพเลอรใช เรยกวา คอมไพล (compile) โดยจะท าการอานโปรแกรมภาษาซทงหมดตงแตตนจนจบ แลวท าการแปลผลทเดยว

Page 8: หน่วยการเรียนรู้ที่ 1

จะท าการอานและแปลโปรแกรมทละบรรทด เมอแปลผลบรรทดหนงเสรจกจะท างานตามค าสงในบรรทดนน แลวจงท าการแปลผลตามค าสงในบรรทดถดไป หลกการทอนเตอรพรเตอรใชเรยกวา อนเตอรเพรต (interpret)

Page 9: หน่วยการเรียนรู้ที่ 1

ของตวแปลภาษาทงสองแบบ

Page 10: หน่วยการเรียนรู้ที่ 1

ขอดท างานไดเรว เนองจากท าการแปลผลทเดยว แลวจงท างานตามค าสงของโปรแกรมในภายหลง เมอท าการแปลผลแลว ในครงตอไปไมจ าเปนตองท าการแปลผลใหมอก เนองจากภาษาเครองทแปลไดจะถกเกบไวทหนวยความจ า สามารถเรยกใชงานไดทนท

ขอเสย เ ม อ เ ก ดขอผ ดพล าด ขนกบ โปรแกรมจะตรวจสอบหาขอผดพลาดไดยาก เพราะท าการแปลผลทเดยวท งโปรแกรม

Page 11: หน่วยการเรียนรู้ที่ 1

ขอดหาขอผดพลาดของโปรแกรมไดงาย เนองจากท าการแปลผลทละบรรทด เนองจากท างานทละบรรทดดงนนจงสงใหโปรแกรมท างานตามค าสงเฉพาะจดทตองการได ไมเสยเวลารอการแปลโปรแกรมเปนเวลานาน

ขอเสย ชา เนองจากทท างานทละบรรทด

Page 12: หน่วยการเรียนรู้ที่ 1

ภาษาซมฟงกชนมาตรฐานใหผเขยนโปรแกรมสามารถเรยกใชงานได เ ชนการเขยนโปรแกรมแสดงขอความ “Lumpangkanyanee” ออกทางหนาจอ ผเขยนโปรแกรมสามารถเรยกใชฟงกชน printf() ซงเปนฟงกชนมาตรฐานของภาษาซมาใชงานได โดยสวนการประกาศ (declaration) ของฟงกชนมาตรฐานตาง ๆ จะถกจดเกบอยในเฮดเดอรไฟลแตละตว แตกตางกนไปตามลกษณะการใชงาน

Page 13: หน่วยการเรียนรู้ที่ 1

ดว ย เ ห ต น ภ าษ า เ ค ร อ ง ท ไ ด จ า กข น ตอน ท 2จงยงไมสามารถน าไปใชงานได แตตองน ามาเชอมโยงเขากบ library กอนซงผลจากการเชอมโยงจะท าใหได executable program (ไฟลนามสกล.exe เชน work.exe) ทสามารถน าไปใชงานได

Page 14: หน่วยการเรียนรู้ที่ 1

เมอน า executable program จากขนตอนท 3มาประมวลผลกจะไดผลลพธ (output) ของโปรแกรมออกมา

Page 15: หน่วยการเรียนรู้ที่ 1