Yes, we do those languages too.

Slides:



Advertisements
Similar presentations
Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company.
Advertisements

FAA-Qualifiable Ada Subset Compiler V. Santhanam Boeing.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Advanced microprocessor optimization Kampala August, 2007 Agner Fog
Quentin Ochem AdaCore.  Complex software are filled with bugs  OS (windows, linux, macosx…)  Webservers  Office suites  Video games  …  And in.
. Memory Management. Memory Organization u During run time, variables can be stored in one of three “pools”  Stack  Static heap  Dynamic heap.
COP4020 Programming Languages
Types of software. Sonam Dema..
Introduction Purpose Objectives Content Learning Time
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Building a Cross Compiler, Assembler and Linker Designed by Prof. Peng-Sheng Chen.
Introduction Purpose This training course introduces the free GNU tools that can be used for debugging embedded system application software in the Renesas.
9/10/20151 Hyperion Enterprise 6.5 New Features & Functionality Robert Cybulski, CPA Finit Solutions.
UNIT 3 TEMPLATE AND EXCEPTION HANDLING. Introduction  Program errors are also referred to as program bugs.  A C program may have one or more of four.
Enabling the ARM Learning in INDIA ARM DEVELOPMENT TOOL SETUP.
Improving Program Performance Function Visibility in z/TPF C++ Load Modules October 2, /2/20151American Express Public.
.NET Framework Danish Sami UG Lead.NetFoundry
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Gene-Auto development status and support Andres Toom IB Krates, Estonia 23/09/2009.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
Introduction to Exception Handling and Defensive Programming.
Vendor Presentation SigAda 2005 George Romanski
Making Good Code AKA: So, You Wrote Some Code. Now What? Ray Haggerty July 23, 2015.
Slide: 1 Copyright © 2009 AdaCore GeneAuto for Ada and SPARK A verifying model compiler GeneAuto2 meeting (Toulouse) September 2009 Matteo Bordin
Building More Reliable And Better Performing Web Applications With Visual Studio 2005 Team System Gabriel Marius TLN312 Program Manager Microsoft Corporation.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course explains how to use section setting and memory.
QEMU, a Fast and Portable Dynamic Translator Fabrice Bellard (affiliation?) CMSC 691 talk by Charles Nicholas.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the Project Generator function.
COP4020 Programming Languages Introduction Prof. Robert van Engelen (modified by Prof. Em. Chris Lacher)
LECTURE 3 Translation. PROCESS MEMORY There are four general areas of memory in a process. The text area contains the instructions for the application.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
1 © 2007 Mauro Morsiani Laboratorio di Sistemi Operativi Anno Accademico Software Development with uMPS Part 2 Mauro Morsiani Copyright © 2007.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
Procedures Procedures are very important for writing reusable and maintainable code in assembly and high-level languages. How are they implemented? Application.
Lecture 3 Translation.
Software 12/1/2008.
Using Ada-C/C++ Changer as a Converter Automatically convert to C/C++ to reuse or redeploy your Ada code Eliminate the need for a costly and.
Introduction to programming
Chapter 1 Introduction to Computers, Programs, and Java
Software Development with uMPS
Workshop in Nihzny Novgorod State University Activity Report
FESA evolution and the vision for Front-End Software
An Embedded Software Primer
Partnership.
Technology Adoption Services
Human Complexity of Software
Embedded Development Application Note: Endian-Independence
GNAT Pro Update Arnaud Charlet GNAT Pro Update Arnaud Charlet
QGen and TQL-1 Qualification
Boston (Burlington), Mass. November 14-15, 2018
Market perspective - what’s new and where are we heading?
AdaCore C/C++ Offering
General Programming on Graphical Processing Units
Technology Adoption Services
Yes, we do those languages too.
QGen and TQL Qualification
GNAT Pro Update Arnaud Charlet GNAT Pro Update Arnaud Charlet
Assembly Language for Intel-Based Computers
General Programming on Graphical Processing Units
Exercise 11.1 Write a code fragment that performs the same function as the statement below without using the crash method Toolbox.crash(amount < 0,
COP4020 Programming Languages
10/6: Lecture Topics C Brainteaser More on Procedure Call
System to Software Integrity
Update & Roadmap. Update & Roadmap Established Ada market “Helping to preserve investments done with Ada” “Provide new cost-effective ways to develop.
Future Airborne Capability Environment (FACE™) Support
GNATtest Demo Patrick Rogers 9 May GNATtest Demo Patrick Rogers 9 May 2019.
Rust for Flight Software
Overview of System Development for Windows CE.NET
Dynamic Binary Translators and Instrumenters
Presentation transcript:

Yes, we do those languages too. C/C++ Yes, we do those languages too. Robert Tice Technical Account Manager

Why AdaCore and C/C++? Software Module C Ada C++ OS | RTOS | Baremetal

C Ada C++ Compiler Front-end GCC Compiler Back-end Binary

But I already have a C/C++ compiler... Provided by OS | RTOS C C++ Ada GCC version X GCC version Y mylib.so: undefined reference to `std::__cxx11::foo_bar x300 more GCC compatibility errors in the output log GCC Linker GCC Linker Provided by AdaCore Binary

But I only have C/C++... AdaCore is a compiler company Expert language support Expert compiler support Same support guarantees you expect from AdaCore Up to date language version support C++17, and C11

Embedded (PowerPC, ARM, x86, RISCV) Platform Support Native (x86) Embedded (PowerPC, ARM, x86, RISCV) Linux Windows Bare Metal VxWorks 6 VxWorks 7 Lynx178 C C++

GNAT Pro Assurance for C/C++ Enterprise Assurance (on 18) 18.5 18.4 18.3 18.1 18.0 19.0w 2017 2018 2019 18.2 18.0w

GNAT Pro Assurance A solution for long term maintenance Critical Bug Fixes Silent code generation error False negative Issues hindering production of certification evidence Active Known Problem Analysis Analysis of problems identified in other versions Analysis of problems identified in the community Additional categorization and justification material Sustain impact analysis justifications

GNAT Programming Studio Mixed language environment for C, C++ and Ada Smart edition Source code navigation (integration with clang) Integration with build & debug

GNATcoverage Ada & C Support HOST Pure Functional Test Windows, Linux Bare Metal ARM / PowerPC VxWorks 6 PowerPC Source to Object Traceability Study GNATemulator / Valgrind / dynamiRIO Coverage Information Sources Executable Pure Functional Test Coverage Data (no instrumentation) Statement Decision MC/DC Ada 83 / 95 / 05 / 2012 C 99 Lauterbarch / iSystems TARGET

GNATstack Identify worst case of stack usage for each entry point Available for Ada (up to Ada 2012) and C Information provided statically Manual information needs to be provided for System calls Recursive calls Dynamic frames DO-178 qualification material is available

Endianness Specification Specify endianness of a data structure regardless of processor Compiler handles endianness conversion Ideal for porting from PowerPC to x86 / ARM when communication layers are endian-specific struct s { int a, b; } __attribute__((scalar_storage_order("big-endian"))) variable;

Ada/C++ Exception Propagation Calls Calls C++ Ada exception when others => … raise Y; throw X; catch (…) { }

Mixed Language Build GPRbuild can build mixed language applications Other compilers can be configured through GPRconfig project Mixed is for Languages use (“Ada”, “C”); end Mixed;

Ada & C bindings Importing C code from Ada Importing Ada code from C procedure C_Proc; pragma Import (C, C_Proc, "c_proc"); void c_proc (void) { // some code } procedure Ada_Proc; pragma Export (C, Ada_Proc, "ada_proc"); procedure Ada_Proc is begin -- some code end Ada_Proc; extern void ada_proc (void);

Some more Ada & C bindings Easy to get wrong… Type R1 is record V : int; end record with Convention => C; procedure F1 (P : R1); pragma Import (C, F1, "f1"); struct R1{ int V; }; void f1 (R1 p); Type R1 is record V : int; end record with Convention => C_Pass_By_Copy; procedure F1 (P : R1); pragma Import (C, F1, "f1"); struct R1{ int V; }; void f1 (R1 p);

Using the Binding Generator From C to Ada From Ada to C gcc –fdump-ada-spec <header files> gcc –gnatceg <specification files>

Ada/C++ Inheritance Method Override Method procedure P (V : T’Class) is begin V.Method; end P; T2 Ada Derived Type Override Method T C++ Base Type Method void P (T & V) { V.Method(); }

Simulink to C Code Generation QGen QGen Code Generation (SPARK Ada or MISRA C) Target Debugger Simulink®, StateFlow® Safe subset of embedded blocks (~120) Portable across versions

Ada/SPARK to C Code Generation GNAT Common Code Generator (CCG) Develop formally proven code in SPARK and build with C toolchain C code to be considered as compilation artifacts Similar to assembly or internal compiler trees Not meant to be maintainable Removes constraints on the target architecture supported Runtime support similar to bare metal Zero Footprint Profile