Skip to main content

Gems

An index of AdaCore “Gem of the Week” series featuring expert tips and insights.

No.TitleAuthorLink
001Limited Types in Ada 2005 — Limited AggregatesBob Duffwww.adacore.com / dl.acm.org
002Limited Types in Ada 2005 — <> Notation in Aggregates — Part 1 of 2Bob Duffwww.adacore.com / dl.acm.org
003Limited Types in Ada 2005 — Constructor Functions — Part 1 of 2Bob Duffwww.adacore.com / dl.acm.org
004PWM Position Control for Radiocontrol ServosMichael Gonzalez Harbourwww.adacore.com
005Key-Based Searching In Set ContainersMatthew Heaneywww.adacore.com / dl.acm.org
006The Ada 95 Multiple Views Idiom vs. Ada 2005 InterfacesMatthew Heaneywww.adacore.com / dl.acm.org
007The Beauty of Numeric Literals in AdaFranco Gasperoniwww.adacore.com / dl.acm.org
008Factory FunctionsMatthew Heaneywww.adacore.com / dl.acm.org
009Classwide Operations, Iterators, and Generic AlgorithmsMatthew Heaneywww.adacore.com / dl.acm.org
010Limited Types in Ada 2005 — Extended Return StatementsBob Duffwww.adacore.com / dl.acm.org
011Limited Types in Ada 2005 — Constructor Functions — Part 2 of 2Bob Duffwww.adacore.com / dl.acm.org
012Limited Types in Ada 2005 — <> Notation — Part 2 of 2Bob Duffwww.adacore.com / dl.acm.org
013Interrupt Handling Idioms — Part 1 of 2Pat Rogerswww.adacore.com / dl.acm.org
014Interrupt Handling Idioms — Part 2 of 2Pat Rogerswww.adacore.com / dl.acm.org
015TimersAnh Vowww.adacore.com / dl.acm.org
016Pragma No_Return — Part 1 of 2Bob Duffwww.adacore.com / dl.acm.org
017Pragma No_Return — Part 2 of 2 — FunctionsBob Duffwww.adacore.com / dl.acm.org
018Warnings in GNATBob Duffwww.adacore.com / dl.acm.org
019XML Streaming of Ada ObjectsPascal Obrywww.adacore.com / dl.acm.org
020Using pragma Shared_Passive for data persistencePascal Obrywww.adacore.com / dl.acm.org
021How to parse an XML textEmmanuel Briotwww.adacore.com / dl.acm.org
022Ada Speaks Many LanguagesRobert Dewar, Vasiliy Fofanov, Franco Gasperoni, Yang Zhangwww.adacore.com / dl.acm.org
023Null Considered Harmful — Part 1 of 2Bob Duffwww.adacore.com / dl.acm.org
024Null Considered Harmful — Part 2 of 2 — EfficiencyBob Duffwww.adacore.com / dl.acm.org
025How to Search TextEmmanuel Briotwww.adacore.com / dl.acm.org
026The Mod AttributeBob Duffwww.adacore.com / dl.acm.org
027Changing Data Representation — Part 1 of 2Robert Dewarwww.adacore.com / dl.acm.org
028Changing Data Representation — Part 2 of 2Robert Dewarwww.adacore.com / dl.acm.org
029Introduction to the Ada Web Server (AWS)Pascal Obrywww.adacore.com / dl.acm.org
030Safe and Secure Software: IntroductionJohn Barneswww.adacore.com / dl.acm.org
031Preconditions/PostconditionsRobert Dewarwww.adacore.com / dl.acm.org
032Safe and Secure Software: Chapter 1, Safe SyntaxJohn Barneswww.adacore.com / dl.acm.org
033Accessibility Checks — Part 1 of 3 — Ada 95Ramón Fernández-Marinawww.adacore.com / dl.acm.org
034Safe and Secure Software: Chapter 2 — Safe TypingJohn Barneswww.adacore.com / dl.acm.org
035Bounded Buffer Package in GNAT Hierarchy — Part 1 of 2Pat Rogerswww.adacore.com / dl.acm.org
036Safe and Secure Software: Chapter 3 — Safe PointersJohn Barneswww.adacore.com / dl.acm.org
037Bounded Buffer Package in GNAT Hierarchy — Part 2 of 2Pat Rogerswww.adacore.com / dl.acm.org
038Safe and Secure Software: Chapter 4 — Safe ArchitectureJohn Barneswww.adacore.com / dl.acm.org
039Efficient Stream I/O for Array TypesPat Rogerswww.adacore.com / dl.acm.org
040Safe and Secure Software: Chapter 5 — Safe Object OrientedJohn Barneswww.adacore.com / dl.acm.org
041Accessibility Checks — Part 2 of 3 — Ada 2005Ramón Fernández-Marinawww.adacore.com / dl.acm.org
042Safe and Secure Software: Chapter 6 — Safe Object ConstructionJohn Barneswww.adacore.com / dl.acm.org
043Safe and Secure Software: Chapter 7 — Safe Memory ManagementJohn Barneswww.adacore.com / dl.acm.org
044Accessibility Checks — Part 3 of 3Bob Duffwww.adacore.com / dl.acm.org
045Safe and Secure Software: Chapter 8 — Safe StartupJohn Barneswww.adacore.com / dl.acm.org
046Incompatibilities between Ada 83 and Ada 95Robert Dewarwww.adacore.com / dl.acm.org
047Safe and Secure Software: Chapter 9 — Safe CommunicationJohn Barneswww.adacore.com / dl.acm.org
048Extending Interfaces in Ada 2005Quentin Ochemwww.adacore.com / dl.acm.org
049Safe and Secure Software: Chapter 10 — Safe ConcurrencyJohn Barneswww.adacore.com / dl.acm.org
050Overload ResolutionBob Duffwww.adacore.com / dl.acm.org
051Safe and Secure Software: Chapter 11 — Certified Safe with SPARKJohn Barneswww.adacore.com / dl.acm.org
052Scripting Capabilities in GNAT — Part 1 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
053Safe and Secure Software: Chapter 12 — ConclusionJohn Barneswww.adacore.com / web.archive.org
054Scripting Capabilities in GNAT — Part 2 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
055Introduction to Ada/Java InterfacingQuentin Ochemwww.adacore.com / dl.acm.org
056Creating Ada to Java calls using GNAT-AJISQuentin Ochemwww.adacore.com / dl.acm.org
057Ada/Java cross dispatchingQuentin Ochemwww.adacore.com / dl.acm.org
058Ada/Java exception handlingQuentin Ochemwww.adacore.com / dl.acm.org
059Generating Ada bindings for C headersArnaud Charletwww.adacore.com / dl.acm.org
060Generating Ada bindings for C++ headersArnaud Charletwww.adacore.com
061Interfacing with C++ constructorsJavier Miranda, Arnaud Charletwww.adacore.com / dl.acm.org
062C++ constructors and Ada 2005Javier Miranda, Arnaud Charletwww.adacore.com / dl.acm.org
063The Effect of Pragma SuppressGary Dismukeswww.adacore.com / dl.acm.org
064Handling Multiple-Unit Source FilesEmmanuel Briotwww.adacore.com / dl.acm.org
065GPRbuildEmmanuel Briotwww.adacore.com / dl.acm.org
066GPS’s Key Shortcuts EditorEmmanuel Briotwww.adacore.com / dl.acm.org
067Managing the GPS WorkspaceEmmanuel Briotwww.adacore.com / dl.acm.org
068Let’s SPARK! — Part 1 of 2Yannick Moywww.adacore.com / dl.acm.org
069Let’s SPARK! — Part 2 of 2Yannick Moywww.adacore.com / dl.acm.org
070The Scope Locks IdiomPat Rogerswww.adacore.com / dl.acm.org
071Tokeneer Discovery – Lesson 1/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
072Tokeneer Discovery – Lesson 2/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
073Tokeneer Discovery – Lesson 3/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
074Tokeneer Discovery – Lesson 4/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
075Tokeneer Discovery – Lesson 5/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
076Tokeneer Discovery – Lesson 6/6Dean Kuo, Angela Wallenburgwww.adacore.com / dl.acm.org
077Where did my memory go? — Part 1 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
078Where did my memory go? — Part 2 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
079Where did my memory go? — Part 3 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
080Speedy Shift and Rotate in SPARKRod Chapmanwww.adacore.com / dl.acm.org
081GNAT SemaphoresPat Rogerswww.adacore.com / dl.acm.org
082Type-Based Security — Part 1 of 2 — Handling Tainted DataYannick Moywww.adacore.com / dl.acm.org
083Type-Based Security — Part 2 of 2 — Validating the InputYannick Moywww.adacore.com / dl.acm.org
084The Distributed Systems Annex — Part 1 of 5 – Simple Client/ServerThomas Quinotwww.adacore.com / dl.acm.org
085The Distributed Systems Annex — Part 2 of 5 — Distributed ObjectsThomas Quinotwww.adacore.com / dl.acm.org
086Ada Quiz 1 – Basic TypesQuentin Ochemwww.adacore.com / dl.acm.org
087The Distributed Systems Annex — Part 3 of 5 — MailboxesThomas Quinotwww.adacore.com / dl.acm.org
088GPS — Smart Completion — Part 1 of 2Quentin Ochemwww.adacore.com / dl.acm.org
089Code Archetypes for Real-Time Programming — Part 1 of 5Marco Panunziowww.adacore.com / dl.acm.org
090The Distributed Systems Annex — Part 4 of 5 — DSA and CThomas Quinotwww.adacore.com / dl.acm.org
091Smart Completion — Part 2 of 2Quentin Ochemwww.adacore.com / dl.acm.org
092Code Archetypes for Real-Time Programming — Part 2 of 5Marco Panunziowww.adacore.com / dl.acm.org
093High Performance Multicore Programming — Part 1 of 2Pat Rogerswww.adacore.com / dl.acm.org
094Code Archetypes for Real-Time Programming — Part 3 of 5Marco Panunziowww.adacore.com / dl.acm.org
095Dynamic Stack Analysis in GNATQuentin Ochemwww.adacore.com / dl.acm.org
096Code Archetypes for Real-Time Programming — Part 4 of 5Marco Panunziowww.adacore.com / dl.acm.org
097Reference Counting in Ada — Part 1 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
098High Performance Multicore Programming — Part 2 of 2Pat Rogerswww.adacore.com / dl.acm.org
099Reference Counting in Ada — Part 2 of 3 — Task SafetyEmmanuel Briotwww.adacore.com / dl.acm.org
100Reference Counting in Ada — Part 3 of 3 — Weak ReferencesEmmanuel Briotwww.adacore.com / dl.acm.org
101SOAP/WSDL — Part 1 of 2 — ServerPascal Obrywww.adacore.com / dl.acm.org
102SOAP/WSDL — Part 2 of 2 — ClientPascal Obrywww.adacore.com / dl.acm.org
103Code Archetypes for Real-Time Programming — Part 5 of 5Marco Panunziowww.adacore.com / dl.acm.org
104GPRbuild and Configuration Files — Part 1 of 2Johannes Kanigwww.adacore.com / dl.acm.org
105Lady Ada Kisses Python — Part 1 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
106Lady Ada Kisses Python — Part 2 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
107Preventing Deallocation for Reference-counted TypesC.K.W. Greinwww.adacore.com / dl.acm.org
108GPRbuild and Configuration Files — Part 2 of 2Johannes Kanigwww.adacore.com / dl.acm.org
109Ada Plug-ins and Shared Libraries — Part 1 of 2Pascal Obrywww.adacore.com / dl.acm.org
110Ada Plug-ins and Shared Libraries — Part 2 of 2Pascal Obrywww.adacore.com / dl.acm.org
111The Distributed Systems Annex — Part 5 of 5 — Embedded Name ServerThomas Quinotwww.adacore.com / dl.acm.org
112Lego Mindstorms Ada Environment — Part 1 of 2Pat Rogerswww.adacore.com / dl.acm.org
113Visitor Pattern in AdaEmmanuel Briotwww.adacore.com / dl.acm.org
114Logging with GNATcoll.TracesEmmanuel Briotwww.adacore.com / dl.acm.org
115Lego Mindstorms Ada Environment — Part 2 of 2Pat Rogerswww.adacore.com / dl.acm.org
116Ada and C++ ExceptionsQuentin Ochemwww.adacore.com / dl.acm.org
117Design Pattern: Overridable Class Attributes in Ada 2012Emmanuel Briotwww.adacore.com / dl.acm.org
118File-System Portability Issues and GNATcoll.VFSEmmanuel Briotwww.adacore.com / dl.acm.org
119GDB Scripting — Part 1 of 2Jean-Charles Delaywww.adacore.com / dl.acm.org
120GDB Scripting — Part 2 of 2Jean-Charles Delaywww.adacore.com / dl.acm.org
121Breakpoint Commands — Part 1 of 2Jerome Guittonwww.adacore.com / dl.acm.org
122Breakpoint Commands — Part 2 of 2Jerome Guittonwww.adacore.com / dl.acm.org
123Implicit Dereferencing in Ada 2012Christoph Greinwww.adacore.com / dl.acm.org
124Scripting GPS for Static AnalysisYannick Moy, Nicolas Settonwww.adacore.com / dl.acm.org
125Detecting infinite recursion with GDB’s Python APIJerome Guittonwww.adacore.com / dl.acm.org
126Aggregate Library ProjectsPascal Obrywww.adacore.com / dl.acm.org
127Iterators in Ada 2012 — Part 1 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
128Iterators in Ada 2012 — Part 2 of 2Emmanuel Briotwww.adacore.com / dl.acm.org
129Type-Safe Database API — Part 1 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
130Type-Safe Database API — Part 2 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
131Type-Safe Database API — Part 3 of 3Emmanuel Briotwww.adacore.com / dl.acm.org
132Erroneous Execution — Part 1 of 4Bob Duffwww.adacore.com / dl.acm.org
133Erroneous Execution — Part 2 of 4Bob Duffwww.adacore.com / dl.acm.org
134Erroneous Execution — Part 3 of 4Bob Duffwww.adacore.com / dl.acm.org
135Erroneous Execution — Part 4 of 4Bob Duffwww.adacore.com / dl.acm.org
136How tall is a kilogram?Vincent Pucciwww.adacore.com / dl.acm.org
137Ada Quiz 2 — An Heir and a Spare?Valentine Reboulwww.adacore.com / dl.acm.org
138Master the Command Line — Part 1 of 2unknownwww.adacore.com / dl.acm.org
139Master the Command Line — Part 2 of 2unknownwww.adacore.com / dl.acm.org
140Bridging the Endianness GapThomas Quinotwww.adacore.com / dl.acm.org
141Configure it outunknownwww.adacore.com / dl.acm.org
142Exception-allyunknownwww.adacore.com / dl.acm.org
143Return to the Sourcesunknownwww.adacore.com / dl.acm.org
144A Bit of Bytes: Characters and Encoding Schemesunknownwww.adacore.com / dl.acm.org
145Ada Quiz 3 — StatementsValentine Reboulwww.adacore.com / dl.acm.org
146Su(per)btypes in Ada 2012 — Part 1 of 3Yannick Moywww.adacore.com / dl.acm.org
147Su(per)btypes in Ada 2012 — Part 2 of 3Yannick Moywww.adacore.com / dl.acm.org
148Su(per)btypes in Ada 2012 — Part 3 of 3Yannick Moywww.adacore.com / dl.acm.org
149Asserting the truth, but (possibly) not the whole truthYannick Moywww.adacore.com / dl.acm.org
150Out and UninitializedRobert Dewarwww.adacore.com / dl.acm.org
151Specifying Mathematical Properties of ProgramsYannick Moywww.adacore.com / dl.acm.org
152Defining a New Language in a Project FileVincent Celierwww.adacore.com
153Multicore Maze Solving — Part 1 of 2Pat Rogerswww.adacore.com
154Multicore Maze Solving — Part 2 of 2Pat Rogerswww.adacore.com
155Enhancing the GPRbuild Database for a New LanguageVincent Celierwww.adacore.com
156Listing Control in GNATRobert Dewarwww.adacore.com
157GPRbuild and Code Generationunknownwww.adacore.com
158GPRinstall — Part 1 of 2Pascal Obrywww.adacore.com
159GPRinstall — Part 2 of 2Pascal Obrywww.adacore.com
160Developing unit tests with GNATtestVasiliy Fofanovwww.adacore.com
161So long and thanks for all the memories!Jamie Ayrewww.adacore.com