GPS The GNAT Programming...

31
GPS The GNAT Programming Studio Presentation cover page EU www.adacore.com Vincent Celier FOSDEM 8-9 February 2009 Senior software engineer, AdaCore

Transcript of GPS The GNAT Programming...

Page 1: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

GPSThe GNAT Programming Studio

Presentation cover page EU

www.adacore.com

Vincent Celier

FOSDEM

8-9 February 2009

Senior software engineer, AdaCore

Page 2: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 3: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 4: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 5: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 6: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 7: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

Slide: 7

GPS Tools (3)

• Documentation generator

• Metrics

• VCS Activities

• Code refactoring

• …

Page 8: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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 !

Page 9: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

Sectional cover - Embedded board

GPS Screen Shots

Page 10: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 11: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 12: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 13: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 14: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 15: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 16: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 17: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 18: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 19: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 20: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 21: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 22: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

Slide: 22

Call Graph (tree view)

The call graph is also available using a tree view.

Page 23: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 24: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 25: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 26: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 27: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 28: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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.

Page 29: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

Sectional cover- Two guys working together

Summary

Page 30: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

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

Page 31: GPS The GNAT Programming Studiopeople.cs.kuleuven.be/~dirk.craeynest/ada-belgium/events/09/09020… · • All tools also available from the command line – You can use them in text-only

Slide: 31

Bring AdaCore Quality to Your Projects