mbeddr : an extensible c-based programming language and ide for embedded systems cisc 836 winter...
TRANSCRIPT
mbeddr : AN EXTENSIBLE C-BASED PROGRAMMINGLANGUAGE AND IDE FOR EMBEDDED SYSTEMS
CISC 836
WINTER 2015
APOORV GOYAL
MENG, ECE DEPT
QUEEN’S UNIVERSITY
PROBLEM ADDRESSED
• C legacy code
• Embedded systems use C
• Highly optimized low-level code in C
“C LACKS HIGH-LEVEL ABSTRACTION”
CHALLENGES IN EMBEDDED SYSTEMS
• Strict functional requirements
• Strict operational requirements-
• Reliable
• Safety for life
• Efficiency
• Real time
CURRENT APPROACHES FOR PROBLEM
• Modeling tools-
• Simulink, ASCET-SD
• DSL for embedded systems
?MBEDDR?
• Built on top of JetBrains MPS language workbench
• C extension for embedded systems
• Tight integration between low-level C and high-level abstraction
• IDE support for C
CHALLENGES CONSIDERED
• Low over-head abstractions
• Safety mechanism in C
• Annotations
• Verifications and checks
• Process support
MBEDDR – LANGUAGE EXTENSION
IMPLEMENTATION
• State machine
• Components
• Decision tables
• Safe modules
• Add Unit test
• Physical units
• Trace requirements
• Product line validation and support
STATE MACHINE
COMPONENTS
DECISION TABLE
UNIT TEST
REQUIREMENT TRACEABILITY
PHYSICAL UNITS
IMPLEMENTATION EFFORT
• Total LOC < 10,000
• 4 man-months
• Requires proficiency in MPS(1 man-month effort)
RELATED WORK
• DSLs
• Feldspar
• Hume
• C extensions
• By Palopoli
• By Boussinot
• By Yosi Ben-Asher
• Language and IDE extension
• Guy Steele’s OOPSLA
• Thrifts extension of Lisp
• Work of Hudak
ONGOING WORK
• Debugger
• Real world Feasibility
• Industry usage and results
THANKS