Ada for Software Engineers

Total Page:16

File Type:pdf, Size:1020Kb

Ada for Software Engineers Ada for Software Engineers M. Ben-Ari Weizmann Institute of Science Originally published by John Wiley & Sons, Chichester, 1998. Copyright c 2005 by M. Ben-Ari. ­ You may download, display and print one copy for your personal use in non-commercial academic research and teaching. Instructors in non-commerical academic institutions may make one copy for each student in his/her class. All other rights reserved. In particular, posting this document on web sites is prohibited without the express permission of the author. Contents Preface x 1 The Language for a Complex World 1 1.1 Programming or software engineering? . 1 1.2 Reliable software engineering . 1 1.3 Language in software engineering . 2 1.4 Ada for software engineering . 2 1.5 The development of Ada . 3 1.6 From Ada 83 to Ada 95 . 4 1.7 The Ada Reference Manual . 5 2 A Simple Ada Program 8 2.1 Case study: country of origin . 8 2.2 Structure of a program . 9 2.3 Statements . 10 2.4 Predefined exceptions . 10 2.5 Types . 11 2.6 Subtypes . 16 2.7 Lexical elements . 18 3 Arrays 20 3.1 Case study: fill and justify text . 20 3.2 Array types . 24 3.3 Constrained array subtypes and objects* . 29 3.4 Type conversion* . 30 3.5 Operations on one-dimensional arrays* . 30 3.6 The context of array aggregates** . 31 v Contents vi 3.7 Parameter modes . 32 4 Elementary Data Structures 34 4.1 Case study: array priority queue . 34 4.2 Records . 36 4.3 Parameter associations and overloading . 37 4.4 Declaring and raising exceptions . 39 4.5 Case study: tree priority queue . 42 4.6 Access types . 45 5 Packages and Abstract Data Types 48 5.1 Modularization . 48 5.2 Case study: priority queue package . 49 5.3 Private types . 58 5.4 Limited types . 61 6 Type Extension and Inheritance 66 6.1 Case study: discrete event simulation . 66 6.2 Tagged types . 67 6.3 Primitive operations . 71 6.4 Overriding an operation . 73 6.5 Class-wide types . 77 6.6 Dynamic dispatching . 81 6.7 Encapsulation and child packages . 84 6.8 Type conversion* . 89 6.9 Objects of class-wide type* . 92 6.10 Abstract types* . 94 6.11 Implementation of dispatching** . 95 6.12 Multiple controlling operands** . 97 6.13 Dispatching on the function result** . 98 7 Generics 100 7.1 Generic declaration and instantiation . 100 7.2 The contract model . 104 7.3 Generic formal subprograms . 106 7.4 Dependence of generic formal parameters . 107 Contents vii 7.5 Generic formal tagged private types* . 109 7.6 Generic formal derived types* . 112 7.7 Generic formal objects* . 116 7.8 Indefinite and abstract parameters** . 117 7.9 Formal package parameters** . 118 7.10 Generic children* . 122 7.11 Limitations of the contract model** . 123 8 Types Revisited 126 8.1 Characters and strings . 126 8.2 Discriminants . 134 8.3 Variant records . 135 8.4 Representation items . 138 8.5 Deeper into discriminants . 139 8.6 Untagged derived types* . 142 9 Access Types 145 9.1 General access types . 145 9.2 Access-to-subprogram types . 146 9.3 Case study: callback . 146 9.4 Accessibility rules . 148 9.5 Access parameters* . 150 9.6 Storage pools* . 152 9.7 Controlled types* . 152 9.8 Access discriminants** . 157 10 Numeric Types 160 10.1 Principles of numeric types . 160 10.2 Integer types . 162 10.3 Types versus subtypes . 163 10.4 Modular types . 163 10.5 Real types . 165 10.6 Floating point types . 166 10.7 Fixed point types . 168 10.8 Advanced concepts* . 174 Contents viii 11 Input–output 179 11.1 Libraries for input–output . 179 11.2 Package Exceptions* . 180 11.3 Streams** . 182 12 Program Structure 186 12.1 Compilation and execution . 186 12.2 Subunits . 187 12.3 Pragmas* . 189 12.4 Elaboration* . 189 12.5 Renamings . 191 12.6 Use type clause . 193 12.7 Visibility rules** . 193 12.8 Overloading** . 195 13 Concurrency 197 13.1 Concepts . 197 13.2 Tasks and protected objects . 199 13.3 Rendezvous . 204 13.4 Case study: the CEO problem . 210 13.5 Entry families . 217 13.6 Protected subprograms . 217 13.7 The requeue statement . 218 13.8 Rules for entries of protected types* . ..
Recommended publications
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • Multiplatformní GUI Toolkity GTK+ a Qt
    Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky GUI = widgety (tlačítka, seznamy, menu, posuvník, bary, dialog, okno atd.) a umožňující tvorbu GUI (grafického uživatelského rozhraní) aplikace vlastní jednotný nebo nativní (pro platformu/systém) vzhled widgetů, možnost stylování nízkoúrovňové (Xt a Xlib v X Windows System a libwayland ve Waylandu na unixových systémech, GDI Windows API, Quartz a Carbon v Apple Mac OS) a vysokoúrovňové (MFC, WTL, WPF a Windows Forms v MS Windows, Cocoa v Apple Mac OS X, Motif/Lesstif, Xaw a XForms na unixových systémech) multiplatformní = pro více platforem (MS Windows, GNU/Linux, Apple Mac OS X, mobilní) nebo platformově nezávislé (Java) – aplikace může být také (většinou) událostmi řízené programování (event-driven programming) – toolkit v hlavní smyčce zachytává události (uživatelské od myši nebo klávesnice, od časovače, systému, aplikace samotné atd.) a umožňuje implementaci vlastních obsluh (even handler, callback function), objektově orientované programování (objekty = widgety aj.) – nevyžaduje OO programovací jazyk! Jan Outrata (Univerzita Palackého v Olomouci) Multiplatformní GUI toolkity duben 2015 1 / 10 GUI toolkit (widget toolkit) (2) language binding = API (aplikační programové rozhraní) toolkitu v jiném prog. jazyce než původní API a toolkit samotný GUI designer/builder = WYSIWYG nástroj pro tvorbu GUI s využitím toolkitu, hierarchicky skládáním prvků, z uloženého XML pak generuje kód nebo GUI vytvoří za běhu aplikace nekomerční (GNU (L)GPL, MIT, open source) i komerční licence např. GTK+ (C), Qt (C++), wxWidgets (C++), FLTK (C++), CEGUI (C++), Swing/JFC (Java), SWT (Java), JavaFX (Java), Tcl/Tk (Tcl), XUL (XML) aj.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Prospector 1955-2014 Remembrance on Rediscovery October 8, 2014 Volume 108 Edition 1 Carroll College Helena, Montana Page 7
    Dedicated to the life The and work of Mike Franklin Prospector 1955-2014 Remembrance on Rediscovery October 8, 2014 Volume 108 Edition 1 Carroll College Helena, Montana page 7 Student Hunthausen Activity Center groundbreaking Columnist JOSH MCCORMICK Hello fellow peers, my name is Josh McCormick and I am a junior here at Carroll College. I am currently majoring in creative alternatives to homework and vibe exploration. I get asked frequently, “what do you plan on doing with that?” I typically reply, “what can’t I do with that?” Though I also study communications and philosophy, my inner ¿re is fueled by forming relationships with others, interacting with nature, sharing laughs, listening to music (preferably with juicy bass), and deepening my understanding of the semi-crazy yet loving creature I call me. Over the course of this year I am excited to share some of my thoughts and inner world with you via my column “Rediscovery.” There are many elements of one’s relationships, the world around, inner being, and daily activities that are Digital rendition of north perspective of future activity center, photo courtesy of Patty White. taken for granted or go unnoticed. I hope to bring to light some of these beautiful Nate Kavanagh commitment of the board of trustees and that responds to the needs of our time.” complexities of everyday life and make donors to the project and “how much they Matz stated it is ¿tting that the building the ordinary a wonder to rediscover. Lead Writer believe in the school and its students.” be named after Hunthausen citing his Enjoy! Evans opened up the ceremony with “pastoral care in and out of the classroom Students, faculty, staff, board members, The other day as I awoke from a excitement.
    [Show full text]
  • Guile-Gnome-Glib.Pdf
    Guile-GNOME: GLib version 2.16.2, updated 9 December 2011 Owen Taylor Matthias Clasen Andy Wingo (many others) This manual is for (gnome glib) (version 2.16.2, updated 9 December 2011) Copyright 1999-2007 Owen Taylor, Matthias Clasen and others This work may be reproduced and distributed in whole or in part, in any medium, physical or electronic, so as long as this copyright notice remains intact and unchanged on all copies. Commercial redistribution is permitted and encouraged, but you may not redistribute, in whole or in part, under terms more restrictive than those under which you received it. If you redistribute a modified or translated version of this work, you must also make the source code to the modified or translated version available in electronic form without charge. However, mere aggregation as part of a larger work shall not count as a modification for this purpose. All code examples in this work are placed into the public domain, and may be used, modified and redistributed without restriction. BECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRIT- ING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE WORK "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR CORREC- TION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAM- AGES ARISING OUT OF THE USE OR INABILITY TO USE THE WORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    [Show full text]
  • Estensione Dell'editor Bluefish Per Il Linguaggio Descrittivo Di Robot
    Estensione dell'editor Bluefish per il linguaggio descrittivo di robot didattico NXT-GTD Valentini Riccardo Indice Sommario 3 1 Introduzione 4 1.1 Scopo . .4 1.2 Il linguaggio NXT-GTD . .5 1.3 Aspetti generali del linguaggio . .5 1.4 Esempi di comandi . .6 2 L'ambiente di sviluppo Bluefish 8 2.1 L'editor . .8 2.2 Caratteristiche dell'editor . 10 2.3 Altre funzionalit`a. 11 3 Il linguaggio Bflang2 (Bluefish language 2) 13 3.1 Qualche cenno su XML . 13 3.2 Bflang2 Schema . 17 3.2.1 header . 18 3.2.2 properties . 19 3.2.3 definition . 20 3.3 Descrizione del linguaggio XML mediante bflang . 25 4 Dalla sintassi al file .bflang2 28 4.1 Header . 28 4.2 Properties . 30 4.3 Definition . 30 5 Estensione dell'editor 37 Conclusioni 41 1 Bibliografia 42 Siti internet 43 2 Sommario Il linguaggio NXT-GTD `ela versione testuale del linguaggio visuale NXT usato per la programmazione dei robot didattici prodotti dalla LEGO R . La presenza di una versione testuale `edovuta alla necessit`adi documentare programmi relativamente complessi e resi in NXT-G che `eun linguaggio grafico-iconico. Per questo linguaggio tuttavia, non esistono ad ora editor in grado di riconoscerlo. Per questo motivo si `edeciso di fornire un ambiente di sviluppo che permetta di avere le stesse facilitazioni disponibili per gli altri linguaggi di programmazione. Per far ci`o`estato usato come base l'editor Bluefish, il quale permette la definizione di sintassi personali mediante la creazione di un file in formato bflang2, dalla struttura molto simile ad XML.
    [Show full text]
  • Curriculum Vitae of Joseph Pingenot
    Curriculum vitae of Joseph A.F.S. Pingenot Affiliation: Department of Physics and Astronomy Position: Postdoctoral Researcher Center for Semiconductor Physics in Nanostructures Citizenship: United States of America The University of Oklahoma Telephone: +1 319-621-2678 Address: 440 W Brooks St., Room 215 Fax: +1 405-325-7557 The University of Oklahoma Website: http://pingenot.org Norman, OK 73019, USA Email: [email protected] Educational and Professional History Academic Preparation Doctor of Philosophy 2009, University of Iowa, USA. Electron And Hole Spins In Quantum Dots. Bachelor of Science 2002, Kansas State University, USA. Bachelor of Science in physics. Professional Experience Postdoctoral 2008-present. Department of Physics and Astronomy, The University of Oklahoma, USA. Researcher Investigating numerically and analytically the Rashba spin-orbit interaction in InSb/AlInSb quantum wells and interacting arrays of CdS/CdSe/CdS quantum well quantum dots. De- veloped software (C, C++) to calculate the charge and spin properties of semiconductor nanostructures. Used GNOME (e.g. glib/GIO), scientific libraries (e.g. FFTW3, GSL), Free and Open Source software (e.g. flex, bison), and high-performance computing technologies (e.g. OpenMP, MPI, CUDA/GPGPU) to quickly, accurately, and flexibly perform calcula- tions in research and educational settings. Used shell scripting and perl to perform needed pre- and postprocessing of data in order to do a large number of calculations and present them coherently and accurately. Organized a scientific conference, working with with others on the organizing committee, vendors, sponsors, and attendees in order to provide a world- class scientific interaction experience to the attendees. Supervised students as they pursued scientific research.
    [Show full text]
  • 2019 Conference Program
    2019 Conference Program The Where the Past and the Present Become Lessons for the Future 73rd Annual Conference Sunday, May 19 — Wednesday, May 22, 2019 MacArthur USS Wisconsin Chrysler Museum Memorial Museum of Art International Institute of Municipal Clerks Professional, Personal Code of Ethics Believing in freedom throughout the World, allowing increased cooperation between public officials, and others, nationally and internationally, I MEMBERS NAME & TITLE EMPLOYER do hereby subscribe to the following principles and ethics which I affirm will govern my personal conduct as a member of IIMC: To uphold constitutional government and the laws of my community; To so conduct my public and private life as to be an example to my fellow citizens; To impart to my profession those standards of quality and integrity that the conduct of the affairs of my office shall be above reproach and to merit public confidence in our community; To be ever mindful of my neutrality and impartiality, rendering equal service to all and to extend the same treatment I wish to receive myself; To record that which is true and preserve that which is entrusted to me as if it were my own; and To strive constantly to improve the administration of the affairs of my office consistent with applicable laws and through sound management practices to produce continued progress and so fulfill my responsibilities to my community and others. These things I, as a member of IIMC, do pledge to do in the interest and purposes for which our government has been established. ___________________________________________ (member signature) This certificate granted by the authority of the International Institute of Municipal Clerks.
    [Show full text]
  • 1 Simon Schampijer
    Sugar: using the GNOME platform to build a learning platform 1 Simon Schampijer - GUADEC 2012, A Coruña Talk outline - Introduction to Sugar - The Sugar platform - Using the GNOME platform - GNOME technologies Sugar is using - Adapt to new technologies - Sugar and Touch - Future Roadmap - How to contribute, where do we need help? 2 Simon Schampijer - GUADEC 2012, A Coruña Sugar ...is a learning environment designed for children ...was originally designed for the XO-1 laptop of the One Laptop per Child project (OLPC) ...runs on most netbooks and PCs today ...is for example used by learners in Uruguay, Ruanda and Nepal ...is available in more than 25 languages 3 Simon Schampijer - GUADEC 2012, A Coruña Main features - especially made for the audience - clarity in design - work-flow based on Activities (tasks) - Journal 5 Simon Schampijer - GUADEC 2012, A Coruña Main features - collaboration centric - low floor, no ceiling - every user can be a contributor of content and code 6 Simon Schampijer - GUADEC 2012, A Coruña Collaboration Centric 7 Simon Schampijer - GUADEC 2012, A Coruña The Sugar platform - a platform for Activity authors - a platform for deployments - a platform for the learner 8 Simon Schampijer - GUADEC 2012, A Coruña Using the GNOME platform - Sugar is the GNOME platform + a target audience oriented UI - Sugar does use the GNOME building blocks (libraries) - we share the platform/application model - Sugar does mimic the GNOME schedule 9 Simon Schampijer - GUADEC 2012, A Coruña GNOME technologies Sugar is using - GTK+ - Metacity
    [Show full text]
  • 1. Why POCS.Key
    Symptoms of Complexity Prof. George Candea School of Computer & Communication Sciences Building Bridges A RTlClES A COMPUTER SCIENCE PERSPECTIVE OF BRIDGE DESIGN What kinds of lessonsdoes a classical engineering discipline like bridge design have for an emerging engineering discipline like computer systems Observation design?Case-study editors Alfred Spector and David Gifford consider the • insight and experienceof bridge designer Gerard Fox to find out how strong the parallels are. • bridges are normally on-time, on-budget, and don’t fall ALFRED SPECTORand DAVID GIFFORD • software projects rarely ship on-time, are often over- AS Gerry, let’s begin with an overview of THE DESIGN PROCESS bridges. AS What is the procedure for designing and con- GF In the United States, most highway bridges are budget, and rarely work exactly as specified structing a bridge? mandated by a government agency. The great major- GF It breaks down into three phases: the prelimi- ity are small bridges (with spans of less than 150 nay design phase, the main design phase, and the feet) and are part of the public highway system. construction phase. For larger bridges, several alter- There are fewer large bridges, having spans of 600 native designs are usually considered during the Blueprints for bridges must be approved... feet or more, that carry roads over bodies of water, preliminary design phase, whereas simple calcula- • gorges, or other large obstacles. There are also a tions or experience usually suffices in determining small number of superlarge bridges with spans ap- the appropriate design for small bridges. There are a proaching a mile, like the Verrazzano Narrows lot more factors to take into account with a large Bridge in New Yor:k.
    [Show full text]
  • Deluge Documentation Release 2.0.0
    deluge Documentation Release 2.0.0 Deluge Team June 07, 2019 CONTENTS 1 Contents 1 1.1 Getting started with Deluge.......................................1 1.2 How-to guides..............................................2 1.3 Changelog................................................3 1.4 Development & community.......................................4 1.5 Development guide............................................9 1.6 Reference................................................. 19 i ii CHAPTER ONE CONTENTS 1.1 Getting started with Deluge This is a starting point if you are new to Deluge where we will walk you through getting up and running with our BitTorrent client. 1.1.1 Installing Deluge These are the instructions for installing Deluge. Consider them a work-in-progress and feel free to make suggestions for improvement. Ubuntu PPA Until the stable PPA is updated, the development version of Deluge can be used: sudo add-apt-repository-u ppa:deluge-team/develop sudo apt install deluge PyPi To install from Python PyPi, Deluge requires the following system installed packages: sudo apt install python3-pip python3-libtorrent python3-gi python3-gi-cairo gir1.2- ,!gtk-3.0 gir1.2-appindicator3 Install with pip: pip install deluge Windows There is no installer package currently for Windows, but can try Deluge as follows. 1. Download and install Python 3.6. 2. Download and extract gvsbuild tarball to C:\. 1 deluge Documentation, Release 2.0.0 3. Open a terminal. 4. Run this command to add gvsbuild directory to PATH: set PATH=C:\gvsbuild\release;%PATH% 5. Install gvsbuild Python wheels: pip install C:\gvsbuild\release\python\pycairo-1.18.0-cp36-cp36m-win_amd64.whl pip install C:\gvsbuild\release\python\PyGObject-3.32.0-cp36-cp36m-win_amd64.whl 6.
    [Show full text]
  • The GNOME3 Desktop and You
    Introduction GObject Introspection GSettings Notifications Shell Extensions The End The GNOME3 Desktop and You Guido Günther <[email protected]> FrOSCon 2011 Introduction GObject Introspection GSettings Notifications Shell Extensions The End About myself Freelancing Free Software Developer Debian Developer since 2000 Contributions to GNOME/GTK+/GObject based apps since about 2008: krb5-auth-dialog, PPM, ModemManager, gtk-vnc, virt-manager I’m less an author but more a user of GNOME APIs. Introduction GObject Introspection GSettings Notifications Shell Extensions The End About this talk Covers things I came across when working on the above projects in Tries to give an introduction so it’s simpler to dive deeper into it GNOME development Introduction GObject Introspection GSettings Notifications Shell Extensions The End GNOME3 GNOME is a desktop environment built on top of GTK+/GLib/GObject GNOME’s user interface is shaped by GNOME Shell Introduction GObject Introspection GSettings Notifications Shell Extensions The End Overview 1 Introduction 2 GObject Introspection 3 GSettings 4 Notifications 5 Shell Extensions 6 The End Introduction GObject Introspection GSettings Notifications Shell Extensions The End GTK+, GLib, GObject GLib is a cross platform C library that provides: Data types: Lists, Hash Tables, Trees, Caches, Strings, ... Application Support: Threads, Loadable Modules, Memory Management, ... Utilities: Timers, Checksums, Random Numbers, Parsers, Testing framework, ... gobject: The GLib Object system gio: filesystem monitoring, async I/O, networking, DBus, settings, ... GTK+3 is the widget toolkit Based on GObject Widgets, clipboard, key bindings, d’n’d, theming, ... Many other libraries are based on GObject: libsoup, gtk-vnc, telepathy, ... Introduction GObject Introspection GSettings Notifications Shell Extensions The End GTK+, GLib, GObject GLib is a cross platform C library that provides: Data types: Lists, Hash Tables, Trees, Caches, Strings, ..
    [Show full text]