ฟังก์ชั่นการเขียนโปรแกรมสำหรับซอฟต์แวร์ฝังตัว [ปิด]


15

ฉันได้พูดคุยเกี่ยวกับ F # และการเขียนโปรแกรมเชิงฟังก์ชั่นกับเพื่อนเมื่อคืนที่แล้วและเขาก็ถามคำถามที่น่าสนใจกับฉัน คุณจะทำอย่างไรซอฟต์แวร์ฝังตัวในการทำงาน? ฉันหมายความว่านี่ดูเหมือนจะเป็นเรื่องที่ค่อนข้างเป็นธรรมชาติในแง่ของรหัสไร้สัญชาติ แต่ฝังตัวยังทำให้เกิดความจำเจด้วยความทรงจำและฉันก็ไม่แน่ใจในเรื่องราวของการทำงานในเรื่องนั้น

มีข้อเสนอแนะเกี่ยวกับภาษาหรือแพ็คเกจสำหรับฝังตัวด้วยฟังก์ชั่น?


ลิงค์นี้จะช่วยให้คุณftp.cs.york.ac.uk/pub/malcolm/thesis.html ดาวน์โหลดไฟล์ postscript และอ่าน
Ubermensch

@ Ubermensch ขอบคุณ แต่ฉันได้รับข้อผิดพลาดเมื่อฉันพยายามเข้าถึงลิงก์นั้น
Onorio Catenacci

3
โปรดดูคำถาม SO นี้ ดูเหมือนจะเป็นที่รับรู้อย่างใกล้ชิดกับสิ่งที่คุณถาม และหน้านี้เกี่ยวข้องกับการเขียนโปรแกรม Arduino ด้วย Haskell.Atom
Bhargav Bhat

@OnorioCatenacci ลิงก์นี้เป็นไฟล์ Postscript จริงftp.cs.york.ac.uk/pub/malcolm/thesis.ps.Z
Ubermensch

คำตอบ:


2

Forthเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการเขียนโปรแกรมระบบสมองกลฝังตัว เป็นภาษาสแต็คมันสามารถวิเคราะห์ในแง่ขององค์ประกอบฟังก์ชั่น ( การเขียนโปรแกรม concatenative ) ฉันไม่เห็นเหตุผลว่าทำไมภาษาดังกล่าวที่มีแง่มุมการใช้งานมากกว่านั้นไม่สามารถนำไปใช้ได้อย่างมีประสิทธิภาพ แต่เนื่องจากยังไม่มีสิ่งดังกล่าว


1
การเขียนโปรแกรมการเชื่อมเป็นกระบวนทัศน์ที่แตกต่างกันมากในการเขียนโปรแกรมการทำงาน แต่มีความเป็นมาการทำงาน ( funforth ) ซึ่งดำเนินการบางแง่มุมที่เรียบง่ายของHaskellภาษาภาษาทำงาน
Mark Booth

@ MarkBooth: ไม่แตกต่างกันมาก การเขียนโปรแกรมแบบเรียงต่อกัน (โดยนิยาม) ทำให้การใช้คอมบิเนเตอร์ลำดับที่สูงขึ้นอย่างหนักและแนวคิดการทำงานหลายอย่างนั้นแปลโดยตรงเป็นโค้ดที่ต่อกัน
Jon Purdy

3

ทางเลือกหนึ่งคือErlang จากหน้าวิกิพีเดีย :

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

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

รุ่นแรกได้รับการพัฒนาโดย Joe Armstrong ในปี 1986 [2 ] เดิมเป็นภาษาที่เป็นกรรมสิทธิ์ของ Ericsson แต่ได้เปิดตัวเป็น open source ในปี 1998

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