กลับไปหน้าบทความ

อ่าน 3 นาที

ภาษาการเขียนโปรแกรมระบบ

ภาษาการเขียนโปรแกรมระบบคือภาษาการเขียนโปรแกรมที่ใช้สำหรับ การ เขียนโปรแกรมระบบภาษาเหล่านี้ได้รับการออกแบบมาเพื่อเขียนซอฟต์แวร์ระบบซึ่งโดยปกติแล้วต้องใช้วิธีการพัฒนาที่แตกต่างกันเมื...

ภาษาการเขียนโปรแกรมระบบ

ภาษาการเขียนโปรแกรมระบบคือภาษาการเขียนโปรแกรมที่ใช้สำหรับ การ เขียนโปรแกรมระบบภาษาเหล่านี้ได้รับการออกแบบมาเพื่อเขียนซอฟต์แวร์ระบบซึ่งโดยปกติแล้วต้องใช้วิธีการพัฒนาที่แตกต่างกันเมื่อเปรียบเทียบกับซอฟต์แวร์แอปพลิเคชันEdsger Dijkstraเรียกภาษาเหล่านี้ว่าภาษาลำดับสูงที่มุ่งเน้นเครื่องจักรหรือmohol [ 1 ]

ภาษาโปรแกรมอเนกประสงค์มักเน้นคุณสมบัติทั่วไปเพื่อให้โปรแกรมที่เขียนด้วยภาษานั้นสามารถใช้โค้ดเดียวกันบนแพลตฟอร์มคอมพิวเตอร์ ที่แตกต่างกันได้ ตัวอย่างของภาษาดังกล่าวได้แก่ALGOLและPascalคุณสมบัติทั่วไปนี้มักมาพร้อมกับข้อเสียคือการไม่สามารถเข้าถึงการทำงานภายในของเครื่องได้โดยตรง และมักส่งผลเสียต่อประสิทธิภาพการทำงาน

ในทางตรงกันข้าม ภาษาโปรแกรมระบบถูกออกแบบมาโดยไม่ได้เน้นความเข้ากันได้ แต่เน้นประสิทธิภาพและความสะดวกในการเข้าถึงฮาร์ดแวร์คอมพิวเตอร์ พื้นฐาน ในขณะเดียวกันก็ยังคงมีแนวคิดการเขียนโปรแกรมระดับสูง เช่น การเขียนโปรแกรมเชิงโครงสร้างตัวอย่างเช่นภาษา Executive Systems Problem Oriented Language (ESPOL) และSystems Programming Language (SPL) ซึ่งทั้งสองภาษามี ไวยากรณ์คล้ายกับ ALGOL แต่ได้รับการปรับแต่งให้เข้ากับแพลตฟอร์มของตนเอง นอกจากนี้ยังมีซอฟต์แวร์ข้ามแพลตฟอร์มอื่นๆที่ ออกแบบมาให้ทำงานใกล้ชิดกับฮาร์ดแวร์ เช่นBLISS , JOVIALและBCPL

บางภาษามีความเชื่อมโยงระหว่างโดเมนระบบและโดเมนแอปพลิเคชัน โดยเชื่อมช่องว่างระหว่างการใช้งานทั้งสองด้าน ตัวอย่างที่โดดเด่นคือภาษาCซึ่งใช้กันอย่างแพร่หลายทั้งในการเขียนโปรแกรมระบบและแอปพลิเคชัน ภาษาPL /Iก็เป็นตัวอย่างแรกๆ ภาษาโปรแกรมสมัยใหม่บางภาษาก็ทำเช่นเดียวกัน เช่นRustและSwift

คุณสมบัติ

ในทางตรงกันข้ามกับภาษาโปรแกรมแอปพลิเคชัน ภาษาโปรแกรมระบบโดยทั่วไปจะให้การเข้าถึงฮาร์ดแวร์ทางกายภาพของเครื่องได้โดยตรงมากกว่า ตัวอย่างภาษาโปรแกรมระบบที่เป็นแบบอย่างในแง่นี้คือBCPL ภาษาโปรแกรมระบบมักขาดสิ่งอำนวยความสะดวกด้าน อินพุต/เอาต์พุต (I/O) ในตัว เนื่องจากโครงการซอฟต์แวร์ระบบมักจะพัฒนาฟังก์ชัน I/O ของตนเอง หรือสร้างขึ้นบนพื้นฐานของ I/O ของจอภาพหรือสิ่งอำนวยความสะดวกในการจัดการหน้าจอ ความแตกต่างระหว่างภาษาที่ใช้สำหรับการเขียนโปรแกรมระบบและการเขียนโปรแกรมแอปพลิเค ชัน เริ่มเลือนลางไปตามกาลเวลาด้วยความนิยมอย่างแพร่หลายของPL/I , CและPascal

ประวัติศาสตร์

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

ภาษาระดับกลาง

ภาษาระดับกลาง "มี ไวยากรณ์ และสิ่งอำนวยความสะดวก มากมายเหมือนกับภาษาระดับสูง แต่ยังให้การเข้าถึงโดยตรงในภาษา (และมักจะเป็นภาษาแอสเซมบลี) ไปยังคุณสมบัติของเครื่องจักร" [ 2 ]ภาษาแรกสุดในกลุ่มนี้คือESPOLบนเมนเฟรม Burroughs ในช่วงประมาณปี 1960 ตามมาด้วยPL360ของNiklaus Wirth (เขียนขึ้นครั้งแรกบนระบบ Burroughs ในฐานะคอมไพเลอร์แบบครอส ) ซึ่งมีไวยากรณ์ทั่วไปของALGOL 60แต่คำสั่งต่างๆ จะจัดการรีจิสเตอร์และหน่วยความจำของ CPU โดยตรง ภาษาอื่นๆ ในหมวดหมู่นี้ ได้แก่MOL-360และPL/ S

ตัวอย่างเช่น คำสั่ง PL360 ทั่วไปคือR9 := R8 and R7 shll 8 or R6ซึ่งหมายความว่ารีจิสเตอร์ 8 และ 7 ควรถูกดำเนินการ AND ร่วมกัน ผลลัพธ์จะถูกเลื่อนไปทางซ้าย 8 บิต ผลลัพธ์ของการดำเนินการ OR นั้นจะถูกนำไปรวมกับเนื้อหาของรีจิสเตอร์ 6 และผลลัพธ์สุดท้ายจะถูกใส่ลงในรีจิสเตอร์ 9 [ 3 ]

ภาษาระดับสูง

ในขณะที่ PL360 อยู่ในระดับความหมายของภาษาแอสเซมบลี ภาษาการเขียนโปรแกรมระบบอีกประเภทหนึ่งทำงานในระดับความหมายที่สูงกว่า แต่มีส่วนขยายเฉพาะที่ออกแบบมาเพื่อให้ภาษานั้นเหมาะสมสำหรับการเขียนโปรแกรมระบบ ตัวอย่างแรกๆ ของภาษาประเภทนี้คือ LRLTRAN [ 4 ]ซึ่งขยาย Fortran ด้วยคุณสมบัติสำหรับการจัดการอักขระและบิต ตัวชี้ และตารางกระโดดที่ระบุโดยตรง

ต่อมา ภาษาต่างๆ เช่น C ได้รับการพัฒนาขึ้น โดยการรวมคุณสมบัติต่างๆ นั้นเพียงพอที่จะเขียนซอฟต์แวร์ระบบได้ และสามารถพัฒนาคอมไพเลอร์ ที่สร้างโปรแกรมออบเจ็กต์ที่มีประสิทธิภาพบนฮาร์ดแวร์ที่ไม่ซับซ้อนได้ โดยทั่วไปแล้ว ภาษาดังกล่าวจะละเว้นคุณสมบัติที่ไม่สามารถนำไปใช้งานได้อย่างมีประสิทธิภาพ และเพิ่มคุณสมบัติที่ขึ้นอยู่กับเครื่องจักรจำนวนเล็กน้อยที่จำเป็นต่อการเข้าถึงความสามารถของฮาร์ดแวร์เฉพาะ โค้ดแอสเซมบลีแบบอินไลน์ เช่น คำสั่ง `inline`asm ของ C มักใช้เพื่อจุดประสงค์นี้ แม้ว่าจะมีการพัฒนาภาษาดังกล่าวมากมาย[ 1 ]แต่ C และC++เป็นภาษาที่ยังคงอยู่รอดมาได้

ภาษาหลัก

ภาษาผู้ริเริ่มวันเกิดได้รับอิทธิพลจากใช้สำหรับ
ร่าเริงบริษัทพัฒนาระบบ1960อัลโกล 58ระบบจำนวนมาก ส่วนใหญ่เป็นระบบทางทหาร
เอสโพลบริษัท เบอร์โรห์ส คอร์ปอเรชั่น1961อัลโกล 60เอ็มซีพี
พีแอล/ไอIBM , SHAREพ.ศ. 2507ALGOL, FORTRAN, และ COBOL บางส่วนMultics , Stratus VOSภาษาที่ใช้ในPRIMOS , IBM CPF , IBM OS/ 400
พีแอล/เอสไอบีเอ็มทศวรรษ 1960พีแอล/ไอOS/360 และรุ่นต่อมา
เอดินบะระ อิมพีแดนซ์มหาวิทยาลัยเอดินเบอระพ.ศ. 2509ALGOL 60 , Atlas Autocodeระบบการเข้าถึงหลายช่องทางของเอดินบะระ
บีซีพีแอลมาร์ติน ริชาร์ดส์พ.ศ. 2510ซีพีแอลซีร็อกซ์ อัลโตเอ็กเซ็กคิวทีฟทริปอส
พีแอล360นิคเลาส์ เวิร์ธ1968อัลโกล 60อัลโกล ดับเบิลยู
ปาสคาลนิคเลาส์ เวิร์ธ1970อัลโกล ดับเบิลยูApollo AEGIS , MacApp , UCSD p-System , VAXELN , Lisa OS , PERQ OS
บลิสมหาวิทยาลัยคาร์เนกีเมลลอน1970ALGOL, PL/I [ 5 ]OpenVMS (บางส่วน), Hydra
ภาษาสำหรับการพัฒนาระบบ (LSD หรือ LSyD)อาร์. แดเนียล เบอร์เกอรอน และคณะ ( มหาวิทยาลัยบราวน์ )1971พีแอล/ไอ
ซีเดนนิส ริทชี่พ.ศ. 2515บีซีพีแอลบีเคอร์เนลของระบบปฏิบัติการจำนวนมากรวมถึงระบบที่คล้าย Unix ส่วนใหญ่; SQLite
ภาษาการเขียนโปรแกรมระบบ (SPL)ฮิวเลตต์-แพคการ์ดพ.ศ. 2515อัลโกล 60 , เอสโพลซอฟต์แวร์ระบบ HP 3000รวมถึงMPE
พีแอล/เอ็มแกรี่ คิลดอลพ.ศ. 2516PL/I , XPLซีพี/เอ็ม , ไอซิส , ไออาร์เอ็มเอ็กซ์
นิวพีเบอร์โรห์สทศวรรษ 1970เอสโพล, อัลโกลเอ็มซีพี
PL.8ไอบีเอ็มทศวรรษ 1970พีแอล/ไอการพัฒนาคอมไพเลอร์, AIX (เฉพาะเวอร์ชัน 1 และ 2), เฟิร์มแวร์เมนเฟรม IBM
พีแอล-6บริษัท ฮันนี่เวลล์ อิงค์ทศวรรษ 1970พีแอล/ไอซีพี-6
ซิมพลาCDCทศวรรษ 1970ร่าเริงระบบย่อยของ NOS , คอมไพเลอร์ส่วนใหญ่, โปรแกรมแก้ไข FSE
ภาษาแอปพลิเคชันธุรกรรม (TAL)คอมพิวเตอร์ Tandemทศวรรษ 1970SPL , C , ปาสคาลระบบปฏิบัติการนอนสต็อป
เมซาซีร็อกซ์ พีอาร์ซีพ.ศ. 2519ปาสคาล , ALGOL 68ไพล็อต , โกลบอลวิว
โมดูลา-2นิคเลาส์ เวิร์ธพ.ศ. 2521ปาสคาลเมซาMedos-2 , บาง ส่วนของIBM OS/400และPRIMOS Modula-2+ เวอร์ชันที่ ใช้ ในARXและTopaz
ซี++บียาร์เน สโตรสตรุปพ.ศ. 2522ซีซิมูล่าBeOS , Haiku , Serenity OS , Symbianส่วนประกอบบางส่วนของIBM i , macOS , Microsoft Windows
ซี3ไอซีแอลทศวรรษ 1980อัลโกล 68ไอซีแอล วีเอ็มอี
อาดาฌอง อิคบิอาห์ , เอส. ทักเกอร์ แทฟต์พ.ศ. 2526ALGOL 68 , ปาสคาล , C++ , ไอเฟลกองทัพ[ 6 ]การบินและอวกาศ[ 7 ]การขนส่งมวลชน การคำนวณที่มีความสมบูรณ์สูง เคอร์เนลระบบปฏิบัติการ[ 8 ] [ 9 ] [ 10 ] iMAX 432 , BiiN/OS
โอเบรอนนิคเลาส์ เวิร์ธพ.ศ. 2530โมดูลา-2ระบบโอเบรอน
โมดูลา-3DEC SRC , Olivetti1988โมดูลา-2+สปิน
ดีดาวอังคารดิจิทัล2001ซี++
นิมแอนเดรียส รัมป์ฟ2008Python , Ada , Lisp , Oberon , C++ , Modula-3 , Object Pascal
ไปGoogle2009โอ เบรอนซีปาสคาลคูเบอร์เน็ตส์ , ด็อกเกอร์
สนิมMozilla Research [ 11 ]2010C++ , Haskell , Erlang , RubyServo , RedoxOSส่วนประกอบบางส่วนของเคอร์เนล LinuxและMicrosoft Windows
สวิฟต์บริษัท แอปเปิล อิงค์2014C , Objective-C , D , Rustการพัฒนาแอปสำหรับ macOS , iOS , watchOSและtvOS [ a ]
ซิกแอนดรูว์ เคลลีย์ 2016 C , C++ , LLVM IR , Go , Rustบัน , ไทเกอร์บีทเทิล, เครื่องยนต์มาค, [ 12 ]โกสต์ตี้
โมโจบริษัทโมดูลาร์ อิงค์[ 13 ]2023 C , C++ , Python , Rust , Swift , Zig

ดูเพิ่มเติม

หมายเหตุ

  • Corbató, Fernando (6 พฤษภาคม 1969). "PL/I ในฐานะเครื่องมือสำหรับการเขียนโปรแกรมระบบ" . Datamation : 68– 76. เก็บถาวรจากต้นฉบับเมื่อ 21 กันยายน 2012. สืบค้นเมื่อ23 มกราคม 2012 .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=System_programming_language&oldid=1334112948 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ภาษาการเขียนโปรแกรมระบบ

ภาษาการเขียนโปรแกรมระบบคือภาษาการเขียนโปรแกรมที่ใช้สำหรับ การ เขียนโปรแกรมระบบภาษาเหล่านี้ได้รับการออกแบบมาเพื่อเขียนซอฟต์แวร์ระบบซึ่งโดยปกติแล้วต้องใช้วิธีการพัฒนาที่แตกต่างกันเมื...

คุณสมบัติ

ในทางตรงกันข้ามกับภาษาโปรแกรมแอปพลิเคชัน ภาษาโปรแกรมระบบโดยทั่วไปจะให้การเข้าถึงฮาร์ดแวร์ทางกายภาพของเครื่องได้โดยตรงมากกว่า ตัวอย่างภาษาโปรแกรมระบบที่เป็นแบบอย่างในแง่นี้คือ BCPL ภาษาโปรแกรมระบบมักขาดสิ่งอำนวยความสะดวกด้าน อินพุต/เอาต์พุต (I/O) ในตัว...

ประวัติศาสตร์

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

ภาษาระดับกลาง

ภาษาระดับกลาง "มี ไวยากรณ์ และสิ่งอำนวยความสะดวก มากมายเหมือนกับภาษาระดับสูง แต่ยังให้การเข้าถึงโดยตรงในภาษา (และมักจะเป็นภาษาแอสเซมบลี) ไปยังคุณสมบัติของเครื่องจักร" [ 2 ] ภาษาแรกสุดในกลุ่มนี้คือ ESPOL บนเมนเฟรม Burroughs ในช่วงประมาณปี 1960 ตามมาด้วย PL360...