GPS The GNAT Programming...

Post on 09-Oct-2020

0 views 0 download

Transcript of GPS The GNAT Programming...

GPSThe GNAT Programming Studio

Presentation cover page EU

www.adacore.com

Vincent Celier

FOSDEM

8-9 February 2009

Senior software engineer, AdaCore

Slide: 2

GPS IDE

• Developer-friendly• Easy to learn and use• Multi-language: Ada, C, C+

+ • Multi-platform

– Linux, Unix, Windows, ...

• Native & cross development

• Same GUI on all platforms • Flexible MDI• Customizable • Extensible, open

technology– Easy to plug-in 3rd party tools

Slide: 3

GPS: A Single IDE for Native & Embedded Development

Native/Host/Remote Development Embedded DevelopmentMixed-Language Development

A common technology in a Single IDE

Slide: 4

GPS is an Open Environment

• All tools also available from the command line– You can use them in text-only mode (e.g. for use in scripts)

– Call them from your own tools

• All formats use plain text – E.g. the project file

• Extensible, open technology– Can plug-in 3rd party tools

Slide: 5

GPS Tools (1)

• Language-sensitive editor

• Automatic generation of body files

• Source code reformatting

• Intelligent source code navigation

• Context-sensitive search and replace

• Application builder

• Version control (CVS, ClearCase, etc.)

• Visual file comparison

Slide: 6

GPS Tools (2)

• Graphical source-level debugger

• Project and program entities explorer

• Project wizard

• Types and program entities graphs

• Call graphs

• File dependency graphs

• Project dependency graphs

• Unit testing

Slide: 7

GPS Tools (3)

• Documentation generator

• Metrics

• VCS Activities

• Code refactoring

• …

Slide: 8

Future GPS Tools

• Scope folding

• CPU and Memory profiling

• More integrated and powerful remote development

• Elaboration dependency graph

• Support for gcov / lcov

• … and many more to come !

Sectional cover - Embedded board

GPS Screen Shots

Slide: 10

Flexible Multiple Document Interface (MDI)

GPS windows can be confined to the main GPS area or they can be left floating and handled individually on the desktop. The image shows the Searchc window, project explorer, entity browser, GPS editor, location window and outline view docked inside the main GPS area. An additional GPS editor window is left floating.

Slide: 11

Language Sensitive Editor

The GPS editor highlights programming language keywords, comments, and strings. It offers automatic code indentation and identifier completion. Tool tips show cross-reference information during development and object values during debugging. Users can move between and highlight matching delimiters such as (), [], or {}. GPS is also integrated with external editors such as Emacs or vi.

Slide: 12

Code Navigation

Navigating within your project sources is simple with GPS. Right click on a program entity in the editor to see its declaration, or to find all its local or global references. With GPS you can see call graphs, display the relationship between program entities, or toggle between the spec and body of packages, tasks, and subprograms.

Slide: 13

Search and Replace

GPS provides a context-sensitive search and replace capability. You can search within the project explorer, project sources, the current file or a given set of files. The screen shot shows the result of a search for entity "Push" in the project sources. A search for all occurrences was requested. The result is displayed in the locations window.

Slide: 14

Automatic Code Fixing

GPS allows easy browsing of compilation errors and offers the possibility to automatically fix most of them. The screen shot shows the result of a project build. There is one compilation error. If the programmer clicks on the wrench icon on the left of the "Locations" windows, GPS will automatically correct the misspelled identifier.

Slide: 15

Version Control

GPS integrates several version control systems (VCS). The screen shot shows the VCS explorer on the left. Icons show source file status: up-to-date, modified, needing update, etc. On the right an annotated source showing the revision, author and date for each line. On the bottom the revision history window indicates the reasons for each revision.

Slide: 16

Visual File Comparison

GPS allows to visually compare two files in a colorful fashion. The screen shot shows the reference file on the left. Added, modified or deleted lines in the reference are in gray, while they are in green, blue, and pink (respectively) in the compared version. To enhance readability GPS synchronizes file display so that matching lines are adjacent.

Slide: 17

Debugger

GPS includes a source and assembly-level debugger capable of graphically displaying program data structures in the same way a programmer would draw them. The screen shot shows such a data structure on the left hand-side. Data structure display is interactive: one can click on pointers, in blue on the screen, to display the objects pointed by them.

Slide: 18

Project Explorer

The project explorer allows developers to examine the structure and contents of a project, update its configuration, and navigate within its items: sub-projects, source files, and program entities. The screen shot shows, on the left, the project explorer of a simple project. Clicking on subprogram "Read" displays it on the editor window.

Slide: 19

Project Wizard

The GPS project wizard allows developers to create complex projects quickly. Among other things, developers can select the version control system, the source files and directories, the naming conventions, and the build parameters for their project.

Slide: 20

Program Entity Graph

GPS generalizes the notion of a class graph to include all program entities such as objects and subprograms in addition to types. After displaying the content of an entity in the graph, the type of the objects, fields, parameters, etc, in blue in the screen shot, can be clicked to display the corresponding entity type.

Slide: 21

Call Graph

The call graph allows developers to picture the call relationship between subprograms in the project. Like in all GPS graphs, developers can choose between straight and orthogonal arcs or navigate through and zoom in or zoom out graphs. Developers can move items in the graph and highlight or hide their arcs.

Slide: 22

Call Graph (tree view)

The call graph is also available using a tree view.

Slide: 23

File Dependency Graph

Programmers can picture source file compilation dependencies with the GPS dependencies browser. The screen shot shows the graph after the developer performed a zoom out operation to have a more global view of the compilation dependencies in the project.

Slide: 24

Project Dependency Graph

As shown in the screen shot, project dependencies can be viewed in two ways: the project explorer on the left gives a tree view of the dependencies (sub-projects are duplicated to represent the graph as a tree), while the project browser in the middle displays dependencies as a graph. The "!" on the main project means the project has been modified.

Slide: 25

Metrics

Metrics can be computed by GPS for a specific file of the project, or for the whole project. The result is shown on the left window of the above screenshot.

Slide: 26

Documentation generator

The screen shot shows an example of html documentation automatically generated using GPS. This documentation contains all functions or procedure declaration along with their own documentation.

Slide: 27

GPS is Customizable

From its menus, to its editor, debugger, browser and graph windows, to its key bindings and general appearance, GPS allows users to customize many of its aspects. The screen shot shows the preferences window after customizing the editor windows: the color of the current line is now green, while keywords are now white on a blue background.

Slide: 28

GPS is Extensible

Extending GPS to integrate additional tools that you can launch via new buttons and custom menus is a simple matter of writing an XML file. The screen shot shows a new CUSTOM menu and two new smiley buttons from which new tools can be launched. The XML file to add these items is shown in the editor window.

Sectional cover- Two guys working together

Summary

Slide: 30

GPS Summary

With GPS you can

• Develop applications• Navigate and understand the

code• Maintain your applications

GPS helps you:

• Manage software complexity

• Improve code quality

• Increase productivity

Slide: 31

Bring AdaCore Quality to Your Projects