hier ist der font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building...
TRANSCRIPT
![Page 1: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/1.jpg)
mbeddr C An extensible version of the
C programming language
for Embedded Programming
C the Difference – C the Future
gefördert durch das BMBF
Förderkennzeichen 01|S11014
![Page 2: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/2.jpg)
![Page 3: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/3.jpg)
What if… you could change
languages like you can change programs?
![Page 4: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/4.jpg)
A Test, written in essentially normal C
![Page 5: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/5.jpg)
The same test, but now using additional language concepts from the unit test extension
![Page 6: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/6.jpg)
The same test, but now using additional language concepts from the unit test extension
Test Cases are a kind of void function, but with adapted syntax
![Page 7: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/7.jpg)
The same test, but now using additional language concepts from the unit test extension
Asset Statements check conditions; they are restricted to be used only in test cases.
![Page 8: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/8.jpg)
The same test, but now using additional language concepts from the unit test extension
A special expression that executes tests, and evaluates to the number of failed tests (which is then returned to the OS here)
![Page 9: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/9.jpg)
The unit testing extensions are implemented in separate language module.
The constructs become available to programmers only if they import the respective language module into their program
This keeps the overall language clean --- a precondition for building extensions targetting different audiences.
![Page 10: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/10.jpg)
![Page 11: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/11.jpg)
mbeddr C
Approach
![Page 12: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/12.jpg)
An extensible C
with support for
formal methods,
requirements
and PLE.
![Page 13: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/13.jpg)
IDE for Everything
![Page 14: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/14.jpg)
A debugger
for all of that The Debugger debugs the code on the level of the extensions! When defining new language concepts, language developers also specify how these concepts should be debugged.
![Page 15: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/15.jpg)
![Page 16: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/16.jpg)
SDK for building
your own
Language
Extensions! This SDK is essentially MPS , plus
some custom documentation.
![Page 17: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/17.jpg)
IDE for Everything
JetBrains
MPS Open Source
Language Workbench
Apache 2.0
Available at http://jetbrains.com/mps
![Page 18: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/18.jpg)
![Page 19: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/19.jpg)
Challenges in embedded software
development
![Page 20: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/20.jpg)
Abstraction
without
Runtime Cost
Abstractions are important to write
maintainable and analyzable software;
however,
Abstractions should not incur runtime
overhead (or at least as little as possible)
![Page 21: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/21.jpg)
C considered
unsafe
void pointers are evil
standards like MISRA-C prohibit certain
constructs from being used in many
organizations
![Page 22: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/22.jpg)
Program
Annotations
Things like physical units, value ranges,
or access patterns to data structures are
often defined outside the code program in
some kind of XML
The C type checker doesn‘t know about them,
a separate checker is used --- cumbersome!
![Page 23: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/23.jpg)
Static Checks
and
Verification
Model Checking, SAT solving etc. are
important to „proof“ the correctness of
programs, however,
it is expensive to do on C code since C‘s
abstractions are too low-level
![Page 24: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/24.jpg)
Product Lines
and
Requirement
Traces Trace links from code (or other implementation artifacts) back to requirements must be supported Product Line Variability must be handled in a more maintainable way than #ifdefs
![Page 25: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/25.jpg)
Separate, hard to
integrate Tools
Mode{ing too{s don‘t integrate we{{ with each other, or with manually written code Mode{ing too{s aren‘t rea{{y extensib{e, making them hard to adapt to specific domains
![Page 26: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/26.jpg)
![Page 27: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/27.jpg)
mbeddr C
Solution
Philosophy
![Page 28: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/28.jpg)
more specialized domains
more specialized languages
Extension Extension Domains can be seen as
specializations of
others. Each may require
specialized language
support
![Page 29: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/29.jpg)
more specialized domains
more specialized languages
Extension Extension There is a general
domain the encompasses
all programs writable
in C
![Page 30: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/30.jpg)
more specialized domains
more specialized languages
Extension Extension Embedded software is a
specialzation of C ---
requiring special
language abstractions
![Page 31: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/31.jpg)
more specialized domains
more specialized languages
Extension Extension Automotive or
Aerospace are subsequent
specia{izations … ad
infinitum, in principle.
![Page 32: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/32.jpg)
![Page 33: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/33.jpg)
Incremental Trafo
Assume we have a
module which
contains a
components which in
turn contains a
state machine. How
is this compiled?
![Page 34: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/34.jpg)
Incremental Trafo
Assume we have a
module which
contains a
components which in
turn contains a
state machine. How
is this compiled?
![Page 35: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/35.jpg)
Incremental Trafo
In the first step,
the state machine
is reduced to a
component operation
that contains e.g.
the usual switch/
case way of
implementing a SM
![Page 36: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/36.jpg)
Incremental Trafo
In the next step,
the component is
reduced to a bunch
of normal C methods;
the contains switch
/case statement just
remains unchanged.
![Page 37: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/37.jpg)
Incremental Trafo
Finally, we
generate text from
the C program and
feed it into a
regular compiler,
such as GCC. mbeddr
uses incremental
reduction!
![Page 38: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/38.jpg)
![Page 39: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/39.jpg)
Language Extension
The core contains all of C plus a couple of utilities such as namespaces, closures, real boolean types and integration with make. A few changes have been made relative to standard C --- these are clearly explained in the docs. It is designed to be extensible by users, e.g. it is simple to provide an integration with a custom build infrastructure
![Page 40: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/40.jpg)
Language Extension
These standard extensions are intended to be useful by
many embedded software proejects. Most of them will become
Open Source during 2012
![Page 41: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/41.jpg)
Language Extension The SDK lets users build their own language extensions
in a modular way --- without changing the existing
languages, and independent of other extensions.
![Page 42: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/42.jpg)
![Page 43: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/43.jpg)
Subset of
Available
Extensions
![Page 44: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/44.jpg)
All of C
(cleaned-up) no preprocessor (better replacements!),
modules/namespaces, unit tests, C99 primitive types
required, booleans, binary literals, function references,
closures
![Page 45: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/45.jpg)
![Page 46: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/46.jpg)
modules
export
instead of
header
module
imports
![Page 47: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/47.jpg)
Retargettable
Build
Integration
![Page 48: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/48.jpg)
![Page 49: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/49.jpg)
Example: different
target used for
generating lego
NXT Osek make
files (special
format)
![Page 50: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/50.jpg)
Native Support
for Unit Testing
and Logging
![Page 51: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/51.jpg)
![Page 52: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/52.jpg)
Test Case
Assert
Statement
Fail
Statement
Expression to
run a set of
tests
![Page 53: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/53.jpg)
![Page 54: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/54.jpg)
Message
Definitions with
ID, arguments
and explaining
text
Various forms of
report state-
ments to report
messages.
Translated
differently
dependending on
the target
platform
Messages can be
deactivated ---
no reporting,
zero overhead!
![Page 55: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/55.jpg)
Components
Interfaces
Contracts
Instances
Mocks & Stubs
![Page 56: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/56.jpg)
![Page 57: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/57.jpg)
Interface with
Operations
Optionally with
pre- and post
conditions ---
automatically
enforced in
every
implementing
component
Instantiatable,
stateful compo-
nents that
provide and
require ports Components
implement
operations of
provided ports Optional
overhead-free
translation to
plain C – no
polymorphism
![Page 58: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/58.jpg)
![Page 59: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/59.jpg)
Instantiation
and port
connection
Mock components
specify expected
behavior
Test case uses mocks; if
behavior is different
from specified expected
behavior, the test fails
![Page 60: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/60.jpg)
State Machines
+
Model Checking
![Page 61: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/61.jpg)
![Page 62: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/62.jpg)
in events with
arguments
bounded int
types for better
checking
Out events with
optional bindings
to functions
Statemachine-local
variables
States with
entry and exit
actions
Transition using
C expressions as
guards
Transitions also
have transition
actions
![Page 63: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/63.jpg)
![Page 64: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/64.jpg)
Model Checker
Results as Tabke A number of
default
properties for
reachability,
non-determinism,
variable ranges
Additional
properties can
be described
using an
abstraction of
LTL/CTL
Counter example if a
property failes ---
clicking on example
highlights code in
model
![Page 65: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/65.jpg)
Requirements
Tracability
![Page 66: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/66.jpg)
![Page 67: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/67.jpg)
Simple way to specify
requirements (kind,
ID, description)
Alternatively import
them from external
tool
Requirements traces
can be attached to
any program element
expressed in any
language --- no
changes to host
language necessary
Requirements kind
and trace kind can be
extended.
![Page 68: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/68.jpg)
And code can also be
edited without the
traces, if developers
prefer that.
![Page 69: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/69.jpg)
Product Line
Variability
![Page 70: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/70.jpg)
Textual Notation for
Feature Models
Optional Feature
Configuration Model
(„intance“ of the
Feature Model) that
selects a set of
features
![Page 71: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/71.jpg)
Code contains
annotations with
boolean expressions
over the features in
Feature Model
Color depends on
expression --- same
expression, same
color
This page shows the
product line mode ---
all options in code
![Page 72: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/72.jpg)
Code in the debug
configuration ---
„everything in“
![Page 73: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/73.jpg)
Code in the
production
configuration ---
„everything out“
![Page 74: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/74.jpg)
![Page 75: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/75.jpg)
Status
and
Availability
![Page 76: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/76.jpg)
http://mbeddr.com
Introduction, Blog, Papers, Code
![Page 77: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/77.jpg)
LWES Language Workbenches
for Embedded Systems
Developed in the
gefördert durch das BMBF
Förderkennzeichen 01|S11014
Project runs till June 2013 itemis, fortiss, SICK, Lear
![Page 78: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/78.jpg)
Core is
Open Source
(EPL) Eclipse Public License Essentually no restrictions regarding commercial use
![Page 79: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/79.jpg)
Some Extensions
will be
Open Sourced
this year
We have to finish/stabilize them before we make them available Statemachines & Components will certainly be part of the Open Source package
![Page 80: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/80.jpg)
Custom
Extensions and
Professional
Services by
Introducing the tool
Language Definition and Extension
We‘re {ooking for protype customers!
![Page 81: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/81.jpg)
support for
graphical early
2013 state machines and block diagrams
integrated with text
![Page 82: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/82.jpg)
integration
in early 2013
native integration with Eclipse UI
EMF export already possible today
![Page 83: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/83.jpg)
![Page 84: Hier ist der Font - mbeddr.files.wordpress.com€¦ · clean --- a precondition for building extensions targetting different audiences. mbeddr C Approach . An extensible C with support](https://reader035.vdocument.in/reader035/viewer/2022071216/6047175e4dba4250dc32d96a/html5/thumbnails/84.jpg)
mbeddr C An extensible version of the
C programming language
for Embedded Programming
C the Difference – C the Future
http://mbeddr.com