วันนี้มีการใช้ภาษาใดในการเขียนโปรแกรมระดับต่ำ [ปิด]


13

เมื่อฉันได้ยินการเขียนโปรแกรมระดับต่ำเช่นสำหรับไดรเวอร์ระบบฝังตัวระบบปฏิบัติการ ฯลฯ ฉันก็คิดถึง C ทันทีและบางที C ++ แต่ส่วนใหญ่ซี

แต่ภาษาอื่น ๆ ที่ใช้สำหรับงานประเภทนี้เช่นกัน? วันนี้ฉันหมายถึงไม่ใช่สิ่งที่มีการใช้

คำตอบ:


14

โดยทั่วไปการเขียนโปรแกรมระดับต่ำเช่นการเขียนโปรแกรมควบคุมนั้นเป็นส่วนผสมของภาษาแอสเซมบลีและ C

ภาษาแอสเซมบลีใช้สำหรับพูดคุยกับฮาร์ดแวร์และใช้ C เพื่อคุยกับเคอร์เนล


ฉันหมายถึงภาษาในระดับที่สูงกว่าชุดประกอบ แต่ประเด็นของคุณยังคงใช้ได้แน่นอน =)
gablin

8
ขึ้นอยู่กับระบบปฏิบัติการบน Windows หรือ Linux ไม่จำเป็นต้องใช้ภาษาแอสเซมบลีเมื่อเขียนไดรเวอร์ คุณสามารถเข้าถึงฮาร์ดแวร์ได้ด้วย C
Jim A

6
ครั้งเดียวที่คุณทำงานกับแอสเซมบลีจริง ๆ คือเมื่อต้องจัดการกับ quirks เฉพาะสถาปัตยกรรมโดยปกติเมื่อทำงานกับบางอย่างเช่นตัวจัดการหน่วยความจำเสมือน อย่างไรก็ตามโปรแกรมเมอร์ที่เขียนโปรแกรมควบคุมอุปกรณ์จะไม่ค่อยได้รับสิ่งนี้ พวกเขาใช้สิ่งอำนวยความสะดวกที่มีอยู่
Tim Post

8

Adaยังคงใช้ในระบบความปลอดภัย / ภารกิจสำคัญเนื่องจากยังคงมีคุณสมบัติด้านความปลอดภัยที่ไม่มีใครเทียบได้

มันเป็นภาคบังคับที่จะใช้ Ada จนถึงยุคปลายในกระทรวงและพื้นที่อื่น ๆ แต่ไม่นานดังนั้นจึงไม่ได้ใช้อย่างหนักเท่าที่เคยเป็นมา แต่ก็ยังสามารถพบได้ในการใช้งานที่สำคัญอย่างยิ่ง avionics พลังงานนิวเคลียร์ ฯลฯ

รุ่นที่ทันสมัยมีการวางแนววัตถุและการสนับสนุนที่ดีสำหรับการประมวลผลแบบขนานดังนั้นยังคงมีประโยชน์ทั้งหมด


1
ฉันคิดว่าเราจะใช้ Ada ในหลักสูตรระบบสมองกลฝังตัวที่ฉันเรียนในฤดูใบไม้ผลิ
gablin

1
@ gablin: ใช่มันใช้กันทั่วไปในระบบฝังตัวค่อนข้างเป็นทางเลือกที่ดีสำหรับสิ่งนั้น
Orbling

6

ฉันค้นคว้าบางอย่างเกี่ยวกับการเขียนโปรแกรม 8 บิตเมื่อไม่นานมานี้ (เกี่ยวข้องกับงานอดิเรกฉันต้องการลองสร้างอุปกรณ์อิเล็กทรอนิกส์ขั้นพื้นฐานบางอย่าง) นอกเหนือจาก C และ Assembly ภาษาเดียวที่ฉันพบว่าเป็นประโยชน์สำหรับงานเหล่านี้คือ Scheme และ Forth


+1 โอ้ใช่แล้วการสร้างอุปกรณ์อิเล็กทรอนิกส์ขั้นพื้นฐานกำลังจะเป็นงานอดิเรกของฉันในไม่ช้าและฉันแทบอดใจรอที่จะเริ่มใช้Make:หนังสืออิเล็กทรอนิกส์สำหรับงานอดิเรกนี้ไม่ได้
Anthony

3

Cythonเป็นตัวอย่างหนึ่ง ไม่ใช่สำหรับระบบฝังตัว แต่สำหรับไดรเวอร์และการเขียนโปรแกรมระดับต่ำอื่น ๆ มันถูกใช้มากขึ้นเรื่อย ๆ ในโลก Python เพื่อแทนที่ C คุณจะได้รับ Python ที่คอมไพล์แล้ว แต่ยังรวมถึงการเข้าถึงระดับต่ำและคำแนะนำสำหรับการเร่งความเร็ว

ในฐานะที่เป็นคนที่คลั่งไคล้งูใหญ่สิ่งที่ฉันใช้แม้ว่าเป็นที่ยอมรับกันน้อยมากและไม่ได้อยู่ในบริบทที่ร้ายแรง


1
ไม่เคยได้ยินมาก่อน แต่ขอบคุณสำหรับความสว่าง =)
gablin

("ยิ่งมากยิ่งขึ้น" -> "ยิ่งเพิ่มมากขึ้น")
Peter Mortensen

1
ฉันไม่คิดว่า Cython เป็นเรื่องปกติสำหรับการเขียนโปรแกรมระดับต่ำ ฉันรู้สึกว่ามันมักจะใช้ในการสร้าง wrappers รอบ C และ C ++ เพื่อให้การเข้าถึงระดับที่ต่ำกว่าและการเข้าถึง libs C หรือ C ++ ทั่วไป
tsturzl

ดังนั้นการเขียนโปรแกรมระดับต่ำแล้ว :-)
Lennart Regebro

2

ดีฉันได้ทำงานบางอย่างเกี่ยวกับระบบฝังตัวผ่านปีที่ผ่านมาโดยใช้ C และLua

ลองใช้eLuaเช่นกัน

- แก้ไข: ที่นี่ในบราซิลเราจะมี "เทคโนโลยีใหม่" สำหรับทีวีดิจิตอลที่เรียกว่าGinga มันเป็นมาตรฐานจริงๆ แต่ในมาตรฐานนี้ภาษาLuaถูกใช้เป็นแหล่งรวมของภาษาที่ฝังตัว อีกอันหนึ่งคือ Java

ผมคิดว่าเราสามารถยก Java เช่นกันสำหรับระบบพิเศษบางอย่างเช่นJavaCards หากสิ่งเหล่านั้นไม่ใช่ระบบฝังตัวกว่าที่ฉันไม่รู้ว่าฝังตัวหมายความว่าอย่างไร ... :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.