Update & Roadmap. Update & Roadmap Established Ada market “Helping to preserve investments done with Ada” “Provide new cost-effective ways to develop.

Slides:



Advertisements
Similar presentations
1 Translation Validation: From Simulink to C Michael RyabtsevOfer Strichman Technion, Haifa, Israel Acknowledgement: sponsored by a grant from General.
Advertisements

©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
REAL ESTATE INVENTORY SYSTEM Training Seminar - September 12, 2011, Bucharest, Romania Guidelines on how to work with the Promise System.
RTEMS overview W. Eric Norum Introduction RTEMS is a tool designed specifically for real-time embedded systems The RTEMS product is an executive.
Programming Language C++ Xulong Peng CSC415 Programming Languages.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
AdaControl A free ASIS based tool J-P. Rosen Adalog.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
Benefits of a Virtual SIL
PHP using MySQL Database for Web Development (part II)
CIS 375 Bruce R. Maxim UM-Dearborn
Information and Computer Sciences University of Hawaii, Manoa
The language focusses on ease of use
Developing IoT endpoints with mbed Client
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.
Common Object Request Broker Architecture (CORBA)
Introduction to Python
IzoT™ Device Stacks March 2014.
PYTHON: AN INTRODUCTION
by Dharani Pullammagari
MatLab Programming By Kishan Kathiriya.
SUITE SEM Implementation Process Training
Introduction Enosis Learning.
PHP / MySQL Introduction
Prepared By: G.UshaRani B.Pranalini A.S.Lalitha
Unlocking the Development Power of Ignition with Python Scripts
Web App vs Mobile App.
Python Classes in Pune |
Loops CS140: Introduction to Computing 1 Savitch Chapter 4 Flow of Control: Loops 9/18/13 9/23/13.
Functional Programming with Java
Wsdl.
Introduction Enosis Learning.
What Is a Program? A program is like an algorithm, but describes a process that is ready or can be made ready to run on a real computer Retrieved from:
Typescript Programming Languages
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
Technology Adoption Services
Why Switch to a Later Version of Ada?
Easy Ada tooling with Libadalang Raphaël Amiard.
GNAT Pro Update Arnaud Charlet GNAT Pro Update Arnaud Charlet
QGen and TQL-1 Qualification
AdaCore Technologies for Cyber Security
Market perspective - what’s new and where are we heading?
AdaCore C/C++ Offering
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
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
Boston (Burlington), Mass. November 14-15, 2018
Easy Ada tooling with Libadalang Raphaël Amiard
General Programming on Graphical Processing Units
Chapter 6 – Architectural Design
Module 01 ETICS Overview ETICS Online Tutorials
Introduction to Programming Using Python PART 1
Covering CWE with Programming Languages and Tools
B. Ramamurthy University at Buffalo
Module 10: Implementing Managed Code in the Database
Intro to PHP.
Software Setup & Validation
Simulation And Modeling
Rail, Space, Security: Three Case Studies for SPARK 2014
PHP an introduction.
FEATURES OF PYTHON.
System to Software Integrity
Yes, we do those languages too.
Future Airborne Capability Environment (FACE™) Support
Rust for Flight Software
GGF10 Workflow Workshop Summary
Presentation transcript:

Update & Roadmap

Established Ada market “Helping to preserve investments done with Ada” “Provide new cost-effective ways to develop reliable software” Emerging Ada Market

Markets Avionics Simulation Radar Missiles ATM Naval C&C Land C&C Communications Drones Automotive Medical Devices IoT Industrial Automation Energy

GNAT Pro

GNAT Pro New Ports Highlights

Embedded (PowerPC, ARM, x86, RISCV) GNAT Pro C and C++ Native (x86) Embedded (PowerPC, ARM, x86, RISCV) Linux Windows Bare Metal VxWorks 6 VxWorks 7 Lynx178 C C++

Libadalang released with 19 A library that allows users to query/alter data about Ada sources Both low & high level APIs: What is the type of this expression? How many references to this variable? Give me the source location of this token Rename this entity Multi-language: Easy binding generation to other languages/ecosystems Today: Python, Ada, C Easy scripting: Be able to create a prototype quickly & interactively

Libadalang example: Semantic Code Outputs with Ada.Text_IO; use Ada.Text_IO; procedure Main is function Double (I : Integer) return Integer is (I * 2); function Double (I : Float) return Float is (I * 2.0); begin Put_Line (Integer'Image (Double (12))); end Main; function Double (I : Integer) return Integer is (I * 2); double_call = unit.root.find( lambda n: n.is_a(lal.CallExpr) and n.f_name.text == 'Double' ) print double_call.f_name.p_referenced_decl.text

GNAT Pro Assurance Enterprise Assurance (on 19) 19.5 19.4 19.3 19.2 19.1 19.0 20.0w 2019 2020 2021 19.0w

Other GNAT Highlights Spectre V2 mitigation (-mindirect-branch and -mfunction-return switches) Link time speedup on Windows for large executables with multiple DLLs Full Ada 2012 syntax for C/C++ binding produced by -fdump-ada-spec Improved suppression of access-before-elaboration checks and warnings AWS improvements Enhanced interoperability with Apache CXF for document/literal WSDL and generated SOAP messages. Improved session handling security by using a configurable private hash.

Static Analysis

CodePeer - New Web Interface

CodePeer - New Entry Level Level 0 with lal checkers New default Very few false positives Very fast analysis Will allow users to write their own checkers in the future

SPARK 2014 SPARK is a software development technology specifically designed for engineering high-reliability applications. A formally-defined programming language supporting static analysis Plus a set of tools to perform those analyses Based on statically provable contracts + testing

SPARK 2014 plans Support for access types Fine grain initialization proof Improvements to counter-examples ISO-26262 (Automotive) qualification

Services

Mentorships Technology Adoption Services

In the lab

Ada and GPUs (1/2) core Offload computations

Ada and GPUs (2/2) procedure Test_Cuda (A : Float_Array; B, C : Float_Array) is begin A (CUDA_Get_Thread_X) := B (CUDA_Get_Thread_X) + C (CUDA_Get_Thread_X); end Test_cuda; CUDA / OpenCL option A, B, C : Float_Array; begin pragma CUDA_Kernel_Call (Grid’(1, 1, 1), Block’(8, 8, 8)); My_Kernel (A, B, C); procedure Test_OpenACC is A, B, C : Float_Array; begin -- initialization of B and C for I in A’Range loop pragma Acc_Parallel; A (I) := B (I) + C (I); end loop; end Test_OpenACC; OpenACC option

Other Significant Efforts LLVM-based compilers experiments GNATcoverage support for instrumented code (as opposed to instrumented emulation)

New Ada Adopters

Why do they care about Ada? Source: https://www.adacore.com/uploads/techPapers/Controlling-Costs-with-Software-Language-Choice-AdaCore- VDC-WP.PDF