mbeddr : an extensible c-based programming language and ide for embedded systems cisc 836 winter...

18
mbeddr : AN EXTENSIBLE C- BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

Upload: emery-wilcox

Post on 12-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

mbeddr : AN EXTENSIBLE C-BASED PROGRAMMINGLANGUAGE AND IDE FOR EMBEDDED SYSTEMS

CISC 836

WINTER 2015

APOORV GOYAL

MENG, ECE DEPT

QUEEN’S UNIVERSITY

Page 2: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE 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”

Page 3: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

CHALLENGES IN EMBEDDED SYSTEMS

• Strict functional requirements

• Strict operational requirements-

• Reliable

• Safety for life

• Efficiency

• Real time

Page 4: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

CURRENT APPROACHES FOR PROBLEM

• Modeling tools-

• Simulink, ASCET-SD

• DSL for embedded systems

Page 5: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

?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

Page 6: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

CHALLENGES CONSIDERED

• Low over-head abstractions

• Safety mechanism in C

• Annotations

• Verifications and checks

• Process support

Page 7: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

MBEDDR – LANGUAGE EXTENSION

Page 8: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

IMPLEMENTATION

• State machine

• Components

• Decision tables

• Safe modules

• Add Unit test

• Physical units

• Trace requirements

• Product line validation and support

Page 9: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

STATE MACHINE

Page 10: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

COMPONENTS

Page 11: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

DECISION TABLE

Page 12: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

UNIT TEST

Page 13: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

REQUIREMENT TRACEABILITY

Page 14: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

PHYSICAL UNITS

Page 15: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

IMPLEMENTATION EFFORT

• Total LOC < 10,000

• 4 man-months

• Requires proficiency in MPS(1 man-month effort)

Page 16: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

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

Page 17: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

ONGOING WORK

• Debugger

• Real world Feasibility

• Industry usage and results

Page 18: Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY

THANKS