[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2628136.2628146acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Building embedded systems with embedded DSLs

Published: 19 August 2014 Publication History

Abstract

We report on our experiences in synthesizing a fully-featured autopilot from embedded domain-specific languages (EDSLs) hosted in Haskell. The autopilot is approximately 50k lines of C code generated from 10k lines of EDSL code and includes control laws, mode logic, encrypted communications system, and device drivers. The autopilot was built in less than two engineer years. This is the story of how EDSLs provided the productivity and safety gains to do large-scale low-level embedded programming and lessons we learned in doing so.

References

[1]
APM Project. APM multiplatform autopilot suite. Website http://ardupilot.com/. Retrieved Feb. 2014.
[2]
E. Axelsson, K. Claessen, M. Sheeran, J. Svenningsson, D. Engdal, and A. Persson. The design and implementation of Feldspar - an embedded language for digital signal processing. In Implementation and Application of Functional Languages, volume 6647 of LNCS, pages 121--136. Springer, 2011.
[3]
E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), LNCS, pages 168--176. Springer, 2004.
[4]
I. S. Diatchki and M. P. Jones. Strongly typed memory areas programming systems-level data structures in a functional language. In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 72--83. ACM, 2006.
[5]
I. S. Diatchki, M. P. Jones, and R. Leslie. High-level views on low-level representations. In Intl. Conference on Functional Programming, pages 168--179. ACM, 2005.
[6]
eChronos. eChronos. Website http://ssrg.nicta.com.au/projects/TS/echronos. Retrieved Feb. 2014.
[7]
FreeRTOS. FreeRTOS.Website http://freertos.org/. Retrieved Feb. 2014.
[8]
T. Hawkins. Controlling hybrid vehicles with Haskell. Presentation. Commercial Users of Functional Programming (CUFP), 2008. Available at http://cufp.galois.com/2008/schedule.html.
[9]
T. Jim, J. G. Morrisett, D. Grossman, M. W. Hicks, J. Cheney, and Y. Wang. Cyclone: A safe dialect of C. In USENIX Conference, Berkeley, CA, USA, 2002. USENIX.
[10]
J. Launchbury and S. L. Peyton Jones. Lazy functional state threads. pages 24--35, June 1994.
[11]
X. Leroy. Formal verification of a realistic compiler. Communications of the ACM, 52(7):107--115, 2009.
[12]
S. Lindley and C. McBride. Hasochism: The pleasure and pain of dependently typed haskell programming. In Symposium on Haskell, pages 81--92. ACM, 2013.
[13]
L. Pike, A. Goodloe, R. Morisset, and S. Niller. Copilot: A hard realtime runtime monitor. In Runtime Verification (RV), volume 6418, pages 345--359. Springer, 2010.
[14]
L. Pike, N. Wegmann, S. Niller, and A. Goodloe. Experience report: a do-it-yourself high-assurance compiler. In Proceedings of the Intl. Conference on Functional Programming (ICFP). ACM, September 2012.
[15]
Pixhawk. PX4 autopilot project. Website http://pixhawk.org/. Retrieved Feb. 2014.
[16]
Rust. Rust. Website http://www.rust-lang.org/. Retrieved Feb. 2014.
[17]
SAE-AS5506. Architecture Analysis and Design Language. SAE, Nov 2004.
[18]
T. Schrijvers, S. Peyton Jones, M. Chakravarty, and M. Sulzmann. Type checking with open type functions. Intl. Conference on Functional Programming, pages 51--62, Sept. 2008. ISSN 0362-1340.
[19]
T. Sheard and S. P. Jones. Template meta-programming for haskell. SIGPLAN Notices, 37(12):60--75, Dec. 2002.
[20]
B. A. Yorgey, S.Weirich, J. Cretin, S. Peyton Jones, D. Vytiniotis, and J. P. Magalhães. Giving haskell a promotion. In Workshop on Types in Language Design and Implementation, pages 53--66. ACM, 2012.

Cited By

View all
  • (2023)Writing Internet of Things Applications with Task Oriented ProgrammingComposability, Comprehensibility and Correctness of Working Software10.1007/978-3-031-42833-3_1(3-52)Online publication date: 18-Oct-2023
  • (2021)Triton: a Domain Specific Language for Cyber-Physical Systems2021 22nd IEEE International Conference on Industrial Technology (ICIT)10.1109/ICIT46573.2021.9453575(810-816)Online publication date: 10-Mar-2021
  • (2019)Threading the Arduino with HaskellMicrobial Metabolic Engineering10.1007/978-3-030-14805-8_8(135-154)Online publication date: 21-Feb-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programming
August 2014
390 pages
ISBN:9781450328739
DOI:10.1145/2628136
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 August 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. embedded domain specific languages
  2. embedded systems

Qualifiers

  • Research-article

Funding Sources

Conference

ICFP'14
Sponsor:

Acceptance Rates

ICFP '14 Paper Acceptance Rate 28 of 85 submissions, 33%;
Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)9
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Writing Internet of Things Applications with Task Oriented ProgrammingComposability, Comprehensibility and Correctness of Working Software10.1007/978-3-031-42833-3_1(3-52)Online publication date: 18-Oct-2023
  • (2021)Triton: a Domain Specific Language for Cyber-Physical Systems2021 22nd IEEE International Conference on Industrial Technology (ICIT)10.1109/ICIT46573.2021.9453575(810-816)Online publication date: 10-Mar-2021
  • (2019)Threading the Arduino with HaskellMicrobial Metabolic Engineering10.1007/978-3-030-14805-8_8(135-154)Online publication date: 21-Feb-2019
  • (2018)Task Oriented Programming and the Internet of ThingsProceedings of the 30th Symposium on Implementation and Application of Functional Languages10.1145/3310232.3310239(83-94)Online publication date: 5-Sep-2018
  • (2018)A Formal Approach to Constructing Secure Air Vehicle SoftwareComputer10.1109/MC.2018.287605151:11(14-23)Online publication date: 1-Nov-2018
  • (2018)A survey on securing UAS cyber physical systemsIEEE Aerospace and Electronic Systems Magazine10.1109/MAES.2018.16014533:10(22-32)Online publication date: Oct-2018
  • (2017)Hardware software co-design in HaskellACM SIGPLAN Notices10.1145/3156695.312297052:10(162-173)Online publication date: 7-Sep-2017
  • (2017)Hardware software co-design in HaskellProceedings of the 10th ACM SIGPLAN International Symposium on Haskell10.1145/3122955.3122970(162-173)Online publication date: 7-Sep-2017
  • (2017)LMS-Verify: abstraction without regret for verified systems programmingACM SIGPLAN Notices10.1145/3093333.300986752:1(859-873)Online publication date: 1-Jan-2017
  • (2017)LMS-Verify: abstraction without regret for verified systems programmingProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009867(859-873)Online publication date: 1-Jan-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media