การเขียนโปรแกรมคอมพิวเตอร์เป็นกระบวนการออกแบบและสร้างโปรแกรม
คอมพิวเตอร์ที่ปฏิบัติการได้เพื่อให้บรรลุผลการคำนวณเฉพาะหรือเพื่อทำงานที่เฉพาะเจาะจง
การเขียนโปรแกรมที่เกี่ยวข้องกับงานเช่นการวิเคราะห์การสร้างอัลกอริทึม , profilingขั้นตอนวิธีการถูกต้องและทรัพยากรการบริโภคและการดำเนินงานของอัลกอริทึมในการเลือกภาษาการเขียนโปรแกรม
(ปกติจะเรียกว่าการเข้ารหัส ) [1]
[2]รหัสที่มาของโปรแกรมที่ถูกเขียนขึ้นในหนึ่งหรือมากกว่าหนึ่งภาษาที่มีความเข้าใจในการเขียนโปรแกรมมากกว่ารหัสเครื่องซึ่งจะดำเนินการโดยตรงจากหน่วยประมวลผลกลางจุดประสงค์ของการเขียนโปรแกรมคือการค้นหาลำดับของคำสั่งที่จะทำให้การทำงานของงานเป็นไปโดยอัตโนมัติ (ซึ่งอาจซับซ้อนพอ ๆ กับระบบปฏิบัติการ )
บนคอมพิวเตอร์ซึ่งมักใช้ในการแก้ปัญหาที่กำหนด การเขียนโปรแกรมที่มีความเชี่ยวชาญจึงมักจะต้องใช้ความเชี่ยวชาญในวิชาที่แตกต่างกันหลายประการรวมถึงความรู้เกี่ยวกับโดเมนการประยุกต์ใช้ขั้นตอนวิธีการเฉพาะและเป็นทางการตรรกะ งานประกอบและที่เกี่ยวข้องกับการเขียนโปรแกรมรวมถึง:
การทดสอบ , การแก้จุดบกพร่อง , รหัสแหล่งที่มาการบำรุงรักษา,
การดำเนินงานของการสร้างระบบและการจัดการที่ได้รับสิ่งประดิษฐ์เช่นเครื่องรหัสโปรแกรมคอมพิวเตอร์ เหล่านี้อาจได้รับการพิจารณาเป็นส่วนหนึ่งของกระบวนการการเขียนโปรแกรม
แต่บ่อยครั้งในระยะการพัฒนาซอฟแวร์ที่ใช้สำหรับกระบวนการขนาดใหญ่นี้กับระยะการเขียนโปรแกรม , การดำเนินการหรือการเข้ารหัสที่สงวนไว้สำหรับการเขียนที่แท้จริงของรหัส
วิศวกรรมซอฟต์แวร์ผสมผสานเทคนิคทางวิศวกรรมเข้ากับแนวทางปฏิบัติในการพัฒนาซอฟต์แวร์ วิศวกรรมย้อนกลับเป็นกระบวนการที่เกี่ยวข้องที่นักออกแบบนักวิเคราะห์และโปรแกรมเมอร์ใช้เพื่อทำความเข้าใจและสร้างใหม่ /
นำกลับมาใช้ใหม่ [3] : 3 ประวัติศาสตร์อุปกรณ์ที่ตั้งโปรแกรมได้มีมานานหลายศตวรรษ เป็นช่วงต้นของศตวรรษที่ 9 ซึ่งเป็นที่ตั้งโปรแกรมซีเควนเพลงถูกคิดค้นโดยเปอร์เซียนูมูซาพี่น้องผู้บรรยายอัตโนมัติกลขลุ่ยเล่นในหนังสือของอุปกรณ์แยบยล [4] [5]ใน 1206 วิศวกรอาหรับอัลจาซารีคิดค้นตั้งโปรแกรมกลองเครื่องที่กลดนตรีหุ่นยนต์อาจจะทำให้การเล่นจังหวะกลองแตกต่างกันและรูปแบบผ่านทางหมุดและกล้อง [6] [7]ในปี 1801 เครื่องทอผ้า Jacquardสามารถผลิตผ้าทอที่แตกต่างไปจากเดิมอย่างสิ้นเชิงโดยเปลี่ยน "โปรแกรม" ซึ่งเป็นชุดการ์ดกระดาษที่มีรูเจาะอยู่ อัลกอริธึมการทำลายรหัสมีมานานหลายศตวรรษแล้ว ในศตวรรษที่ 9 ที่นักคณิตศาสตร์อาหรับ อัลคินดี้อธิบายการเข้ารหัสลับอัลกอริทึมสำหรับรหัสเข้ารหัสถอดรหัสในต้นฉบับในข้อความถอดรหัสการเข้ารหัสลับเขาให้คำอธิบายแรกของการเข้ารหัสโดยการวิเคราะห์ความถี่ซึ่งเป็นอัลกอริธึมการทำลายรหัสที่เก่าแก่ที่สุด [8] ครั้งแรกโปรแกรมคอมพิวเตอร์เป็นวันที่โดยทั่วไป 1843 เมื่อนักคณิตศาสตร์Ada Lovelaceการตีพิมพ์เป็นอัลกอริทึมในการคำนวณลำดับของหมายเลข Bernoulliตั้งใจที่จะดำเนินการโดยCharles Babbage 's วิเคราะห์ Engine [9] ข้อมูลและคำแนะนำเคยถูกจัดเก็บไว้ในการ์ดเจาะภายนอก ซึ่งได้รับการจัดเก็บตามลำดับและจัดเรียงไว้ในชุดโปรแกรม ในช่วงทศวรรษที่ 1880 Herman Hollerithได้คิดค้นแนวคิดในการจัดเก็บข้อมูลในรูปแบบที่เครื่องอ่านได้ [10]ต่อมามีการเพิ่มแผงควบคุม (ปลั๊กบอร์ด) ใน 1906 Type I Tabulator ของเขาอนุญาตให้ตั้งโปรแกรมสำหรับงานที่แตกต่างกันและในช่วงปลายทศวรรษที่ 1940 อุปกรณ์บันทึกหน่วยเช่นIBM 602และIBM 604ได้รับการตั้งโปรแกรมโดยแผงควบคุมใน เช่นเดียวกับคอมพิวเตอร์อิเล็กทรอนิกส์เครื่องแรก แต่ด้วยแนวคิดของคอมพิวเตอร์ที่เก็บไว้โปรแกรมนำมาใช้ในปี 1949 ทั้งโปรแกรมและข้อมูลที่ถูกจัดเก็บและการจัดการในลักษณะเดียวกันในหน่วยความจำคอมพิวเตอร์ [ ต้องการอ้างอิง ] ภาษาเครื่องรหัสเครื่องเป็นภาษาของโปรแกรมในยุคแรก ๆ ซึ่งเขียนในชุดคำสั่งของเครื่องนั้น ๆ มักจะอยู่ในสัญกรณ์ไบนารี ภาษาแอสเซมบลีได้รับการพัฒนาในไม่ช้าโดยให้โปรแกรมเมอร์ระบุคำสั่งในรูปแบบข้อความ (เช่น ADD X, TOTAL) โดยมีตัวย่อสำหรับรหัสการทำงานแต่ละรหัสและชื่อที่มีความหมายสำหรับระบุที่อยู่ อย่างไรก็ตามเนื่องจากภาษาแอสเซมบลีเป็นมากกว่าสัญกรณ์ที่แตกต่างกันเล็กน้อยสำหรับภาษาเครื่องสองเครื่องที่มีชุดคำสั่งต่างกันจึงมีภาษาแอสเซมบลีที่แตกต่างกัน แผงควบคุมมีสายสำหรับ IBM 402 เครื่องบัญชี ภาษาคอมไพเลอร์ภาษาระดับสูงทำให้กระบวนการพัฒนาโปรแกรมง่ายขึ้นและเข้าใจได้ง่ายขึ้นและผูกพันกับฮาร์ดแวร์พื้นฐานน้อยลง FORTRANซึ่งเป็นภาษาระดับสูงที่ใช้กันอย่างแพร่หลายเป็นครั้งแรกในการนำไปใช้งานจริงออกมาในปี 2500 [11]และในไม่ช้าก็มีการพัฒนาภาษาอื่น ๆ อีกมากมายโดยเฉพาะภาษา COBOLมุ่งเป้าไปที่การประมวลผลข้อมูลเชิงพาณิชย์และLispสำหรับการวิจัยทางคอมพิวเตอร์ ภาษาที่คอมไพล์เหล่านี้ช่วยให้โปรแกรมเมอร์สามารถเขียนโปรแกรมในรูปแบบที่มีความสมบูรณ์ทางวากยสัมพันธ์มากขึ้นและสามารถแยกโค้ดออกเป็นนามธรรมได้มากขึ้นทำให้สามารถกำหนดเป้าหมายไปยังชุดคำสั่งของเครื่องที่แตกต่างกันได้ผ่านการประกาศคอมไพล์และฮิวริสติก ครั้งแรกที่คอมไพเลอร์สำหรับการเขียนโปรแกรมภาษาได้รับการพัฒนาโดยเกรซกระโดด [12]เมื่อ Hopper ไปทำงานในUNIVACในปีพ. ศ. 2492 เธอได้นำแนวคิดในการใช้คอมไพเลอร์ร่วมกับเธอ [13] [14]คอมไพเลอร์ใช้ประโยชน์จากพลังของคอมพิวเตอร์เพื่อให้การเขียนโปรแกรมง่ายขึ้น[11]โดยอนุญาตให้โปรแกรมเมอร์ระบุการคำนวณโดยการป้อนสูตรโดยใช้สัญกรณ์ infix (เช่นY = X * 2 + 5 * X + 9 ) FORTRANซึ่งเป็นภาษาระดับสูงที่ใช้กันอย่างแพร่หลายเป็นภาษาแรกที่มีการนำไปใช้งานซึ่งอนุญาตให้มีการใช้บล็อกโค้ดที่ใช้ซ้ำได้ออกมาในปี 2500 [11]และในไม่ช้าก็มีการพัฒนาภาษาอื่น ๆ อีกมากมายโดยเฉพาะภาษาโคบอลที่มุ่งเป้าไปที่การประมวลผลข้อมูลเชิงพาณิชย์ และเสียงกระเพื่อมสำหรับการวิจัยทางคอมพิวเตอร์ ในปี 1951 ฟรานเซสอี Holbertonพัฒนาคนแรกที่กำเนิดเรียงผสานซึ่งวิ่งบนยูนิแวกผม [15]ผู้หญิงอีกคนหนึ่งที่ทำงานที่ยูนิแวก, Adele Mildred Kossพัฒนาโปรแกรมที่เป็นสารตั้งต้นให้กับเครื่องกำเนิดไฟฟ้ารายงาน [15]แนวคิดในการสร้างภาษาโคบอลเริ่มต้นในปี 2502 เมื่อMary K. Hawesซึ่งทำงานให้กับBurroughs Corporationได้จัดการประชุมเพื่อหารือเกี่ยวกับการสร้างภาษาทางธุรกิจทั่วไป [16]เธอเชิญหกคนรวมทั้งเกรซฮอปเปอร์ [16] Hopper มีส่วนร่วมในการพัฒนาภาษาโคบอลเป็นภาษาธุรกิจและสร้างโปรแกรม "จัดทำเอกสารด้วยตนเอง" [17] [18]ผลงานของถังเพื่อ COBOL อยู่บนพื้นฐานของการเขียนโปรแกรมภาษาของเธอเรียกว่ากระแส-MATIC [14]ในปี 1961 Jean E. Sammet ได้พัฒนาFORMACและตีพิมพ์Programming Languages: History and Fundamentalsซึ่งเป็นงานมาตรฐานเกี่ยวกับภาษาโปรแกรม [16] [19] รายการซอร์สโค้ดโปรแกรมส่วนใหญ่ยังคงเข้ามาใช้บัตรเจาะหรือเทปกระดาษ ดูการเขียนโปรแกรมคอมพิวเตอร์ในยุคบัตรเจาะ ในช่วงปลายทศวรรษที่ 1960 อุปกรณ์จัดเก็บข้อมูลและขั้วคอมพิวเตอร์มีราคาไม่แพงพอที่จะสร้างโปรแกรมได้โดยการพิมพ์ลงในคอมพิวเตอร์โดยตรง Frances Holberton สร้างรหัสเพื่ออนุญาตให้ป้อนข้อมูลทางแป้นพิมพ์ขณะที่เธอทำงานที่ UNIVAC [20] โปรแกรมแก้ไขข้อความได้รับการพัฒนาขึ้นซึ่งอนุญาตให้ทำการเปลี่ยนแปลงและแก้ไขได้ง่ายกว่าการใช้การ์ดเจาะรู ซิสเตอร์แมรีเคนเน็ ธ เคลเลอร์ทำงานเกี่ยวกับการพัฒนาภาษาโปรแกรมพื้นฐานในขณะที่เธอเป็นนักศึกษาระดับบัณฑิตศึกษาที่ดาร์ทเมาท์ในปี 1960 [21]หนึ่งในภาษาโปรแกรมเชิงวัตถุภาษาแรกSmalltalkได้รับการพัฒนาโดยโปรแกรมเมอร์เจ็ดคนรวมถึงAdele Goldbergในปี 1970 [22] การเขียนโปรแกรมสมัยใหม่ข้อกำหนดด้านคุณภาพไม่ว่าแนวทางในการพัฒนาจะเป็นอย่างไรโปรแกรมสุดท้ายจะต้องเป็นไปตามคุณสมบัติพื้นฐานบางประการ คุณสมบัติต่อไปนี้เป็นคุณสมบัติที่สำคัญที่สุด: [23] [24]
ความสามารถในการอ่านซอร์สโค้ดในการเขียนโปรแกรมคอมพิวเตอร์ความสามารถในการอ่านหมายถึงความง่ายที่ผู้อ่านที่เป็นมนุษย์สามารถเข้าใจวัตถุประสงค์โฟลว์การควบคุมและการทำงานของซอร์สโค้ด มีผลต่อคุณภาพด้านบนรวมถึงการพกพาการใช้งานและที่สำคัญที่สุดคือการบำรุงรักษา ความสามารถในการอ่านเป็นสิ่งสำคัญเนื่องจากโปรแกรมเมอร์ใช้เวลาส่วนใหญ่ในการอ่านพยายามทำความเข้าใจและแก้ไขซอร์สโค้ดที่มีอยู่แทนที่จะเขียนซอร์สโค้ดใหม่ รหัสอ่านไม่ได้มักจะนำไปสู่ข้อบกพร่องไร้ประสิทธิภาพและรหัสที่ซ้ำกัน จากการศึกษา[26]พบว่าการแปลงความสามารถในการอ่านง่ายเพียงไม่กี่ขั้นตอนทำให้โค้ดสั้นลงและลดเวลาในการทำความเข้าใจลงอย่างมาก การทำตามรูปแบบการเขียนโปรแกรมที่สอดคล้องกันมักจะช่วยให้อ่านง่าย อย่างไรก็ตามความสามารถในการอ่านเป็นมากกว่ารูปแบบการเขียนโปรแกรม หลายปัจจัยการมีเพียงเล็กน้อยหรือไม่มีอะไรเกี่ยวข้องกับความสามารถของคอมพิวเตอร์ในการคอมไพล์และรันโค้ดได้อย่างมีประสิทธิภาพมีส่วนช่วยในการอ่าน [27]ปัจจัยเหล่านี้บางส่วน ได้แก่ :
นำเสนอแง่มุมของการนี้ (เช่นเยื้องแบ่งเส้นไฮไลต์สีและอื่น ๆ ) มักจะถูกจัดการโดยแก้ไขรหัสต้นฉบับแต่ด้านเนื้อหาสะท้อนให้เห็นถึงความสามารถและทักษะของโปรแกรมเมอร์ ภาษาโปรแกรมภาพต่างๆยังได้รับการพัฒนาโดยมีจุดประสงค์เพื่อแก้ไขปัญหาด้านความสามารถในการอ่านโดยการนำแนวทางที่ไม่ใช่แบบดั้งเดิมมาใช้กับโครงสร้างโค้ดและการแสดงผล สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDEs) มีจุดมุ่งหมายเพื่อรวมความช่วยเหลือดังกล่าวทั้งหมด เทคนิคเช่นการปรับโครงสร้างโค้ดสามารถเพิ่มความสามารถในการอ่าน ความซับซ้อนของอัลกอริทึมสาขาวิชาการและการปฏิบัติทางวิศวกรรมของการเขียนโปรแกรมคอมพิวเตอร์นั้นเกี่ยวข้องกับการค้นหาและการใช้อัลกอริทึมที่มีประสิทธิภาพสูงสุดสำหรับระดับปัญหาที่กำหนด เพื่อจุดประสงค์นี้อัลกอริทึมจะถูกแบ่งออกเป็นคำสั่งโดยใช้สิ่งที่เรียกว่าสัญกรณ์ Big Oซึ่งเป็นการแสดงออกถึงการใช้ทรัพยากรเช่นเวลาในการดำเนินการหรือการใช้หน่วยความจำในแง่ของขนาดของอินพุต โปรแกรมเมอร์ผู้เชี่ยวชาญมีความคุ้นเคยกับอัลกอริทึมที่ได้รับการยอมรับและความซับซ้อนตามลำดับที่หลากหลายและใช้ความรู้นี้เพื่อเลือกอัลกอริทึมที่เหมาะสมที่สุดกับสถานการณ์ อัลกอริทึมหมากรุกเป็นตัวอย่าง"การเขียนโปรแกรมคอมพิวเตอร์สำหรับเล่นหมากรุก" เป็นเอกสารในปี 1950 ที่ประเมินอัลกอริทึม "minimax" ซึ่งเป็นส่วนหนึ่งของประวัติศาสตร์ของความซับซ้อนของอัลกอริทึม หลักสูตรของไอบีเอ็มในDeep Blue (หมากรุกคอมพิวเตอร์)เป็นส่วนหนึ่งของหลักสูตรวิทยาศาสตร์คอมพิวเตอร์ที่มหาวิทยาลัยสแตนฟอ [28] ระเบียบวิธีขั้นตอนแรกในกระบวนการพัฒนาซอฟต์แวร์ที่เป็นทางการส่วนใหญ่คือการวิเคราะห์ข้อกำหนดตามด้วยการทดสอบเพื่อกำหนดการสร้างแบบจำลองมูลค่าการนำไปใช้และการกำจัดความล้มเหลว (การดีบัก) มีวิธีการที่แตกต่างกันมากมายสำหรับแต่ละงานเหล่านั้น แนวทางหนึ่งที่นิยมสำหรับการวิเคราะห์ความต้องการคือการวิเคราะห์กรณีใช้ โปรแกรมเมอร์หลายคนใช้รูปแบบของการพัฒนาซอฟต์แวร์แบบAgileซึ่งขั้นตอนต่างๆของการพัฒนาซอฟต์แวร์อย่างเป็นทางการจะรวมเข้าด้วยกันเป็นรอบสั้น ๆ ซึ่งใช้เวลาไม่กี่สัปดาห์แทนที่จะเป็นปี มีหลายวิธีในกระบวนการพัฒนาซอฟต์แวร์ เทคนิคการสร้างแบบจำลองที่เป็นที่นิยม ได้แก่ การวิเคราะห์และออกแบบเชิงวัตถุ ( OOAD ) และสถาปัตยกรรมที่ขับเคลื่อนด้วยโมเดล ( MDA ) Unified Modeling Language ( UML ) เป็นสัญกรณ์ที่ใช้สำหรับทั้ง OOAD และ MDA เทคนิคที่คล้ายกันที่ใช้สำหรับการออกแบบฐานข้อมูลคือ Entity-Relationship Modeling ( ER Modeling ) เทคนิคการใช้งานรวมถึงภาษาที่จำเป็น ( object-orientedหรือขั้นตอน ) ภาษาการทำงานและภาษาตรรกะ การวัดการใช้ภาษาเป็นการยากมากที่จะระบุว่าภาษาโปรแกรมสมัยใหม่ที่เป็นที่นิยมมากที่สุดคืออะไร วิธีการวัดความนิยมของภาษาโปรแกรม ได้แก่ การนับจำนวนโฆษณางานที่กล่าวถึงภาษา[29]จำนวนหนังสือที่ขายได้และหลักสูตรการสอนภาษา (ซึ่งเป็นการประเมินความสำคัญของภาษาที่ใหม่กว่า) และการประมาณจำนวนบรรทัดที่มีอยู่ ของรหัสที่เขียนในภาษา (ซึ่งจะประเมินจำนวนผู้ใช้ภาษาธุรกิจเช่น COBOL ต่ำเกินไป) บางภาษาได้รับความนิยมอย่างมากสำหรับแอปพลิเคชันบางประเภทในขณะที่บางภาษามักใช้ในการเขียนแอปพลิเคชันประเภทต่างๆ ยกตัวอย่างเช่นภาษาโคบอลยังคงแข็งแกร่งในศูนย์ข้อมูลขององค์กร[30]มักจะมีขนาดใหญ่เมนเฟรมคอมพิวเตอร์ , Fortranในการใช้งานวิศวกรรมภาษาสคริปต์ในเว็บการพัฒนาและCในซอฟต์แวร์ฝังตัว แอปพลิเคชันจำนวนมากใช้หลายภาษาผสมกันในการสร้างและใช้งาน โดยทั่วไปภาษาใหม่ได้รับการออกแบบโดยใช้ไวยากรณ์ของภาษาก่อนหน้าพร้อมกับฟังก์ชันใหม่ที่เพิ่มเข้ามา (เช่นC ++เพิ่มการวางแนววัตถุให้กับ C และJavaจะเพิ่มการจัดการหน่วยความจำและbytecodeให้กับ C ++ แต่ส่งผลให้สูญเสียประสิทธิภาพและความสามารถในการทำงานต่ำ การจัดการระดับ) การแก้จุดบกพร่องข้อบกพร่องที่เกิดขึ้นจริงเป็นครั้งแรกที่ทำให้เกิดปัญหาในคอมพิวเตอร์คือมอดซึ่งติดอยู่ในเมนเฟรมของฮาร์วาร์ดซึ่งบันทึกไว้ในรายการสมุดบันทึกลงวันที่ 9 กันยายน พ.ศ. 2490 [31] "บั๊ก" เป็นคำที่ใช้กันทั่วไปสำหรับข้อบกพร่องของซอฟต์แวร์เมื่อเป็นเช่นนี้ พบข้อผิดพลาด การดีบักเป็นงานที่สำคัญมากในกระบวนการพัฒนาซอฟต์แวร์เนื่องจากการมีข้อบกพร่องในโปรแกรมอาจส่งผลกระทบที่สำคัญต่อผู้ใช้ บางภาษามีแนวโน้มที่จะเกิดข้อผิดพลาดบางประเภทเนื่องจากข้อกำหนดของภาษานั้นไม่ต้องการให้คอมไพเลอร์ทำการตรวจสอบมากเท่ากับภาษาอื่น ๆ การใช้เครื่องมือวิเคราะห์รหัสคงที่สามารถช่วยตรวจหาปัญหาที่อาจเกิดขึ้นได้ โดยปกติขั้นตอนแรกในการดีบักคือการพยายามทำให้เกิดปัญหาขึ้นอีกครั้ง สิ่งนี้อาจเป็นงานที่ไม่สำคัญเช่นเดียวกับกระบวนการคู่ขนานหรือข้อบกพร่องของซอฟต์แวร์ที่ผิดปกติบางอย่าง นอกจากนี้สภาพแวดล้อมของผู้ใช้และประวัติการใช้งานที่เฉพาะเจาะจงอาจทำให้เกิดปัญหาซ้ำได้ยาก หลังจากเกิดข้อผิดพลาดแล้วการป้อนข้อมูลของโปรแกรมอาจจำเป็นต้องทำให้ง่ายขึ้นเพื่อให้ง่ายต่อการดีบัก ตัวอย่างเช่นเมื่อจุดบกพร่องในคอมไพเลอร์สามารถทำให้เกิดข้อผิดพลาดเมื่อแยกวิเคราะห์ไฟล์ต้นฉบับขนาดใหญ่การทำให้กรณีทดสอบง่ายขึ้นซึ่งส่งผลให้มีเพียงไม่กี่บรรทัดจากไฟล์ต้นฉบับต้นฉบับก็เพียงพอแล้วที่จะทำให้เกิดข้อขัดข้องเดียวกันอีกครั้ง จำเป็นต้องมีการทดลองและข้อผิดพลาด / การหารและพิชิต: โปรแกรมเมอร์จะพยายามลบบางส่วนของกรณีทดสอบเดิมออกและตรวจสอบว่าปัญหายังคงมีอยู่หรือไม่ เมื่อแก้ไขข้อบกพร่องใน GUI โปรแกรมเมอร์สามารถพยายามข้ามการโต้ตอบของผู้ใช้บางส่วนจากคำอธิบายปัญหาเดิมและตรวจสอบว่าการดำเนินการที่เหลือเพียงพอสำหรับข้อบกพร่องที่จะปรากฏหรือไม่ การเขียนสคริปต์และเบรกพอยต์ก็เป็นส่วนหนึ่งของกระบวนการนี้เช่นกัน แก้จุดบกพร่องมักจะทำกับIDEsเช่นEclipse , Visual Studio , Xcode , KDevelop , NetBeansและรหัส :: บล็อก แก้จุดบกพร่องแบบสแตนด์อโลนเช่นGDBยังใช้และสิ่งเหล่านี้มักจะให้น้อยของสภาพแวดล้อมในภาพมักจะใช้บรรทัดคำสั่ง โปรแกรมแก้ไขข้อความบางอย่างเช่นEmacsอนุญาตให้เรียกใช้ GDB ผ่านทางโปรแกรมเหล่านี้เพื่อจัดเตรียมสภาพแวดล้อมที่มองเห็นได้ ภาษาโปรแกรมภาษาโปรแกรมที่แตกต่างกันสนับสนุนรูปแบบการเขียนโปรแกรมที่แตกต่างกัน (เรียกว่ากระบวนทัศน์การเขียนโปรแกรม ) การเลือกภาษาที่ใช้ขึ้นอยู่กับการพิจารณาหลายประการเช่นนโยบายของ บริษัท ความเหมาะสมกับงานความพร้อมใช้งานของแพ็คเกจของบุคคลที่สามหรือความชอบส่วนบุคคล ตามหลักการแล้วระบบจะเลือกภาษาการเขียนโปรแกรมที่เหมาะสมที่สุดสำหรับงานในมือ การแลกเปลี่ยนจากอุดมคตินี้เกี่ยวข้องกับการค้นหาโปรแกรมเมอร์ที่รู้ภาษาเพียงพอเพื่อสร้างทีมความพร้อมของคอมไพเลอร์สำหรับภาษานั้นและประสิทธิภาพของโปรแกรมที่เขียนด้วยภาษาที่กำหนด ภาษาสร้างสเปกตรัมโดยประมาณจาก "ระดับต่ำ" ถึง "ระดับสูง"; โดยทั่วไปแล้วภาษา "ระดับต่ำ" จะเน้นไปที่เครื่องมากกว่าและดำเนินการได้เร็วกว่าในขณะที่ภาษา "ระดับสูง" มีความเป็นนามธรรมมากกว่าและใช้งานง่ายกว่า แต่ดำเนินการได้น้อยกว่าอย่างรวดเร็ว โดยปกติแล้วการเขียนโค้ดในภาษา "ระดับสูง" จะง่ายกว่าภาษา "ระดับต่ำ" Allen DowneyในหนังสือHow To Think Like A Computer Scientistเขียนว่า: รายละเอียดมีลักษณะแตกต่างกันไปในภาษาต่างๆ แต่มีคำแนะนำพื้นฐานบางประการปรากฏในทุกภาษา:
ภาษาคอมพิวเตอร์หลายแห่งที่มีกลไกในการเรียกฟังก์ชั่นให้บริการโดยห้องสมุดสาธารณะ การจัดเตรียมฟังก์ชันในไลบรารีให้เป็นไปตามรูปแบบรันไทม์ที่เหมาะสม (เช่นวิธีการส่งผ่านอาร์กิวเมนต์ ) จากนั้นฟังก์ชันเหล่านี้อาจถูกเขียนในภาษาอื่นใดก็ได้ โปรแกรมเมอร์นักเขียนโปรแกรมคอมพิวเตอร์คือผู้ที่เขียนซอฟต์แวร์คอมพิวเตอร์ งานของพวกเขามักเกี่ยวข้องกับ:
ดูสิ่งนี้ด้วย
อ้างอิง
แหล่งที่มา
อ่านเพิ่มเติม
ลิงก์ภายนอก |