Skip to content

Commit 3729e03

Browse files
committed
Editorial change: replace by footbibliography
1 parent 0f87506 commit 3729e03

File tree

6 files changed

+52
-37
lines changed

6 files changed

+52
-37
lines changed

content/booklets/adacore-technologies-for-railway-software/chapters/cenelec.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ and technologies:
149149
* Support tools and languages (sub-clause 6.7) |mdash| see
150150
:ref:`Railway_SW_tool-qualification` below.
151151

152-
As shown in :cite:`Railway_SW_Boulanger_Schön_2007`, for software applications the
152+
As shown in :footcite:p:`Railway_SW_Boulanger_Schön_2007`, for software applications the
153153
assessment process involves demonstrating that the software application
154154
achieves its associated safety objectives.
155155

@@ -340,7 +340,8 @@ referred to here as "tool qualification", and provides details on what
340340
needs to be performed and/or supplied.
341341
(The standard does not use a specific term for this process, but the
342342
"tool qualification" terminology from the airborne software standards
343-
|do-178c| :cite:`Railway_SW_RTCA_EUROCAE_2011a` and |do-330| :cite:`Railway_SW_RTCA_EUROCAE_2011b`
343+
|do-178c| :footcite:p:`Railway_SW_RTCA_EUROCAE_2011a` and |do-330|
344+
:footcite:p:`Railway_SW_RTCA_EUROCAE_2011b`
344345
is appropriate.)
345346

346347
.. index:: Tool classes
@@ -388,7 +389,7 @@ standard by also specifying the lifecycle phase that is relevant for each
388389
sub-clause.
389390
The steps shown indicate the requirements to be met and reflect the additional
390391
effort needed as the tool level increases; for further information, please see
391-
:cite:`Railway_SW_Boulanger_2015`, Chapter 9.
392+
:footcite:p:`Railway_SW_Boulanger_2015`, Chapter 9.
392393

393394

394395
.. .. figure:: ../images/table1.png

content/booklets/adacore-technologies-for-railway-software/chapters/introduction.rst

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ and also a normative process based on certification standards.
1313
In Europe, these standards are issued and maintained by CENELEC
1414
(European Committee for Electrotechnical Standardization).
1515
This document explains the usage of AdaCore's technologies in conjunction
16-
with |en-50128|:2011 :cite:`Railway_SW_CENELEC_2011` |mdash|
16+
with |en-50128|:2011 :footcite:p:`Railway_SW_CENELEC_2011` |mdash|
1717
*Railway applications - Communication, signalling and processing systems
1818
- Software for railway control and protection systems* |mdash|
1919
as modified by amendments
20-
|en-50128|/A1 :cite:`Railway_SW_CENELEC_2020a` and |en-50128|/A2 :cite:`Railway_SW_CENELEC_2020b`.
20+
|en-50128|/A1 :footcite:p:`Railway_SW_CENELEC_2020a` and |en-50128|/A2
21+
:footcite:p:`Railway_SW_CENELEC_2020b`.
2122
(For ease of exposition, the 2011 edition of the standard, as modified
2223
by the A1 and A2 amendments, will simply be referred to as |en-50128|.)
2324

@@ -31,19 +32,20 @@ standards:
3132

3233
.. index:: EN 50126
3334

34-
* |en-50126|-1 :cite:`Railway_SW_CENELEC_2017b` |mdash|
35+
* |en-50126|-1 :footcite:p:`Railway_SW_CENELEC_2017b` |mdash|
3536
*Railway applications - The specification and demonstration of reliability,
3637
availability, maintainability and safety (RAMS) - Part 1: Generic RAMS
37-
process* (subsequently modified by |en-50126|-1/A1 :cite:`Railway_SW_CENELEC_2024`)
38+
process* (subsequently modified by |en-50126|-1/A1
39+
:footcite:p:`Railway_SW_CENELEC_2024`)
3840

39-
* |en-50126|-2 :cite:`Railway_SW_CENELEC_2017c` |mdash|
41+
* |en-50126|-2 :footcite:p:`Railway_SW_CENELEC_2017c` |mdash|
4042
*Railway applications - The specification and demonstration of reliability,
4143
availability, maintainability and safety (RAMS): Part 2: systems approach
4244
to safety*
4345

4446
.. index:: EN 50129
4547

46-
* |en-50129| :cite:`Railway_SW_CENELEC_2018` |mdash|
48+
* |en-50129| :footcite:p:`Railway_SW_CENELEC_2018` |mdash|
4749
*Railway applications - Communication, signalling and processing systems -
4850
Safety related electronic systems for signalling*
4951

@@ -61,8 +63,8 @@ relate to software's role in the safety of a railway system:
6163

6264
.. index:: EN 50657
6365

64-
* |en-50657|:2017 :cite:`Railway_SW_CENELEC_2017a` as modified by amendment
65-
|en-50657|/A1 :cite:`Railway_SW_CENELEC_2023a` |mdash|
66+
* |en-50657|:2017 :footcite:p:`Railway_SW_CENELEC_2017a` as modified by amendment
67+
|en-50657|/A1 :footcite:p:`Railway_SW_CENELEC_2023a` |mdash|
6668
*Railways applications - Rolling stock applications - Software on Board
6769
Rolling Stock*
6870

@@ -75,7 +77,7 @@ relate to software's role in the safety of a railway system:
7577

7678
.. index:: EN 50716
7779

78-
* |en-50716|:2023 :cite:`Railway_SW_CENELEC_2023b` |mdash|
80+
* |en-50716|:2023 :footcite:p:`Railway_SW_CENELEC_2023b` |mdash|
7981
*Railway Applications - Requirements for software development*
8082

8183
This standard is a successor to |en-50128| and |en-50657|,
@@ -149,12 +151,14 @@ processes defined by the CENELEC railway standards.
149151
AdaCore's technologies can be used at all Safety Integrity Levels, from
150152
Basic Integrity to |sil4|. At lower levels, the full Ada language is suitable,
151153
independent of platform. At higher levels, specific subsets will be needed,
152-
for example the :index:`Ravenscar Profile` (:cite:`Railway_SW_Burns_et_al_2004`,
153-
:cite:`Railway_SW_McCormick_Chapin_2015`) for concurrency support with analyzable
154-
semantics and a reduced footprint, or the :index:`Light Profile`
155-
:cite:`Railway_SW_AdaCore_Web_UG_Cross` for a subset with no run-time library
154+
for example the :index:`Ravenscar Profile`
155+
(:footcite:p:`Railway_SW_Burns_et_al_2004`,
156+
:footcite:p:`Railway_SW_McCormick_Chapin_2015`) for concurrency support with
157+
analyzable semantics and a reduced footprint, or the :index:`Light Profile`
158+
:footcite:p:`Railway_SW_AdaCore_Web_UG_Cross` for a subset with no run-time library
156159
requirements. At the highest level (|sil4|) the SPARK language
157-
(:cite:`Railway_SW_McCormick_Chapin_2015`, :cite:`Railway_SW_AdaCore_Altran_2020`) and its
160+
(:footcite:p:`Railway_SW_McCormick_Chapin_2015`,
161+
:footcite:p:`Railway_SW_AdaCore_Altran_2020`) and its
158162
verification toolsuite enable mathematical proof of properties including
159163
correct information flow, absence of run-time exceptions, and, for the most
160164
critical code, correctness of the implementation against a formally

content/booklets/adacore-technologies-for-railway-software/chapters/table4-2.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ C or assembly."
4040
Language Subset,D.35,|mdash|,HR,Yes,"Ada is designed to support \
4141
subsetting, possibly under the control of specific runtimes, GNATcheck, or \
4242
with SPARK. Another possibility is to follow the recommendations in \
43-
:cite:`Railway_SW_ISO_IEC_1998`."
43+
:footcite:p:`Railway_SW_ISO_IEC_1998`."
4444
Object-Oriented Programming,"Table A.22, D.57",R,R,Yes,"If needed, Ada \
4545
supports all the usual paradigms of object-oriented programming, in addition \
4646
to safety-related features such as the :index:`Liskov Substitution Principle`."

content/booklets/adacore-technologies-for-railway-software/chapters/technology.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1226,7 +1226,8 @@ here it will be a value from either :ada:`Base_Class` or :ada:`Subclass`.
12261226
Storage for :ada:`X` is reserved on the stack, and the invocation :ada:`P (X)`
12271227
will dispatch to the appropriate version of :ada:`P`.
12281228

1229-
The booklet :cite:`Railway_SW_AdaCore_2016` provides additional information on how to use
1229+
The booklet :footcite:p:`Railway_SW_AdaCore_2016` provides additional information
1230+
on how to use
12301231
object-oriented features in a certified context.
12311232

12321233
.. index:: single: Annex D; Procedural Programming (D.60)

content/booklets/adacore-technologies-for-railway-software/chapters/tools.rst

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ Additional features (including support for contract-based programming
3434
in the form of subprogram pre- and postconditions and type invariants)
3535
were added in the Ada 2012 version of the language standard, and a
3636
number of features to increase the language's expressiveness were
37-
introduced in Ada 2022 (see :cite:`Railway_SW_ISO_IEC_2016`,
38-
:cite:`Railway_SW_Barnes_Brosgol_2015`,
39-
:cite:`Railway_SW_Barnes_2014`,
40-
:cite:`Railway_SW_ISO_IEC_2022` for information about Ada).
37+
introduced in Ada 2022 (see :footcite:p:`Railway_SW_ISO_IEC_2016`,
38+
:footcite:p:`Railway_SW_Barnes_Brosgol_2015`,
39+
:footcite:p:`Railway_SW_Barnes_2014`,
40+
:footcite:p:`Railway_SW_ISO_IEC_2022` for information about Ada).
4141

4242
.. index:: Lovelace (Augusta Ada), Babbage (Charles), Byron (Lord George)
4343

@@ -209,7 +209,8 @@ traditional :ada:`obj.op(...)` operation invocation notation.
209209
Ada is methodologically neutral and does not impose a distributed overhead for
210210
OOP. If an application does not need OOP, then the OOP features do not have
211211
to be used, and there is no run-time penalty.
212-
See :cite:`Railway_SW_Barnes_2014` or :cite:`Railway_SW_AdaCore_2016` for more details..
212+
See :footcite:p:`Railway_SW_Barnes_2014` or
213+
:footcite:p:`Railway_SW_AdaCore_2016` for more details.
213214

214215
.. index:: single: Ada language; Concurrent programming
215216

@@ -276,8 +277,9 @@ High-Integrity Systems
276277
With its emphasis on sound software engineering principles, Ada supports the
277278
development of high-integrity applications, including those that need to be
278279
certified against safety standards such |en-50128| for rail systems,
279-
|do-178c| :cite:`Railway_SW_RTCA_EUROCAE_2011a` for avionics, and security standards
280-
such as the Common Criteria :cite:`Railway_SW_CCDB_2022`.
280+
|do-178c| :footcite:p:`Railway_SW_RTCA_EUROCAE_2011a`
281+
for avionics, and security standards
282+
such as the Common Criteria :footcite:p:`Railway_SW_CCDB_2022`.
281283
Key to Ada's support for high-assurance software is the language's
282284
memory safety; this is illustrated by a number of features, including:
283285

@@ -379,7 +381,8 @@ software, and cross-domain solutions.
379381

380382
The SPARK language has been stable over the years, with periodic
381383
enhancements. The 2014 version of SPARK represented a major revision
382-
:cite:`Railway_SW_McCormick_Chapin_2015`, :cite:`Railway_SW_AdaCore_Altran_2020`),
384+
:footcite:p:`Railway_SW_McCormick_Chapin_2015`,
385+
:footcite:p:`Railway_SW_AdaCore_Altran_2020`),
383386
incorporating contract-based programming
384387
syntax from Ada 2012, and subsequent upgrades included support for pointers
385388
(access types) based on the Rust ownership model.
@@ -421,7 +424,8 @@ Ease of Adoption
421424

422425
User experience has shown that the language and the SPARK Pro toolset do not
423426
require a steep learning curve. Training material such as AdaCore's online
424-
AdaLearn course for SPARK :cite:`Railway_SW_AdaCore_AdaLearn` can quickly bring
427+
AdaLearn course for SPARK
428+
:footcite:p:`Railway_SW_AdaCore_AdaLearn` can quickly bring
425429
developers up to speed; users are assumed to be experts in their own
426430
application domain such as railway software and do not need to be familiar
427431
with formal methods or the proof technology implemented by the toolset.
@@ -519,13 +523,14 @@ Language and Tool Support
519523
GNAT Pro Assurance for Ada supports all versions of the Ada
520524
language standard as well as multiple versions of C (C89, C99, and C11).
521525
It provides an Integrated Development Environment
522-
(see :ref:`Railway_SW_Integrated_Development_Environments`), a comprehensive toolsuite
526+
(see :ref:`Railway_SW_Integrated_Development_Environments`),
527+
a comprehensive toolsuite
523528
including a visual debugger, and an extensive set of libraries and bindings.
524529
Details on the GNAT Pro for Ada toolchain may be found in
525-
:cite:`Railway_SW_AdaCore_Web_UG_Native`.
530+
:footcite:p:`Railway_SW_AdaCore_Web_UG_Native`.
526531
AdaCore's GNAT project facility, based on a multi-language builder for
527532
systems organized into subsystems and libraries, is documented in
528-
:cite:`Railway_SW_AdaCore_Web_GPR`.
533+
:footcite:p:`Railway_SW_AdaCore_Web_GPR`.
529534

530535
.. index:: single: GNAT Pro Assurance; Configurable Run-Time Libraries
531536

@@ -540,7 +545,7 @@ Configurable Run-Time Libraries
540545

541546
Two specific GNAT-defined run-time libraries have been designed with
542547
certification in mind and are known as the Certifiable Profiles
543-
(see :cite:`Railway_SW_AdaCore_Web_UG_Cross`):
548+
(see :footcite:p:`Railway_SW_AdaCore_Web_UG_Cross`):
544549

545550
* *Light Profile*
546551

@@ -823,9 +828,11 @@ GNATcheck provides:
823828
* Style checks that allow developers to control indentation, casing,
824829
comment style, and nesting level.
825830

826-
AdaCore's :index:`GNATformat` tool :cite:`Railway_SW_AdaCore_Web_GNATformat`, which
831+
AdaCore's :index:`GNATformat` tool
832+
:footcite:p:`Railway_SW_AdaCore_Web_GNATformat`, which
827833
formats Ada source code according to the GNAT coding style
828-
:cite:`Railway_SW_AdaCore_Coding_Style`, can help avoid having code that violates
834+
:footcite:p:`Railway_SW_AdaCore_Coding_Style`,
835+
can help avoid having code that violates
829836
GNATcheck rules. GNATformat is included in the GNAT Pro for Ada toolchain.
830837

831838
GNATcheck comes with a query language (LKQL, for Language Kit Query Language)
@@ -869,7 +876,8 @@ Principle) that can be used to demonstrate consistency of class hierarchies.
869876
Testing a private subprogram is outside the scope of GNATtest but can be
870877
implemented by defining the relevant testing code in a private child of the
871878
package that declares the private subprogram.
872-
Additionally, hybrid verification can help (see :ref:`Railway_SW_Hybrid_Verification`):
879+
Additionally, hybrid verification can help (see
880+
:ref:`Railway_SW_Hybrid_Verification`):
873881
augmenting testing with the use of SPARK to formally prove relevant properties
874882
of the private subprogram.
875883

@@ -1005,7 +1013,8 @@ Critical fixes to GNAT Pro for Rust are upstreamed to the Rust community,
10051013
and critical fixes made by the community to upstream Rust tools are backported
10061014
as needed to the GNAT Pro for Rust code base.
10071015
Additionally, the Assurance edition of GNAT Pro for Rust includes the
1008-
"sustained branch" service (see :ref:`Railway_SW_Sustained_Branches`) that strikes the
1016+
"sustained branch" service (see :ref:`Railway_SW_Sustained_Branches`) that
1017+
strikes the
10091018
balance between tool stability and project flexibility.
10101019

10111020
.. index:: Integrated Development Environments (IDEs)

content/booklets/adacore-technologies-for-railway-software/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ As editor of this revised edition, I would like to thank Vasiliy Fofanov
134134
(AdaCore) for his detailed and helpful review and suggestions.
135135

136136
For up-to-date information on AdaCore support for developers of rail
137-
software, please visit :cite:`Railway_SW_AdaCore_Web_Rail`.
137+
software, please visit :footcite:`Railway_SW_AdaCore_Web_Rail`.
138138

139139
| Ben Brosgol, AdaCore
140140
| September 2025

0 commit comments

Comments
 (0)