diff options
Diffstat (limited to 'eng/glossary.rst')
-rw-r--r-- | eng/glossary.rst | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/eng/glossary.rst b/eng/glossary.rst new file mode 100644 index 0000000..a015eda --- /dev/null +++ b/eng/glossary.rst @@ -0,0 +1,177 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2022, 2023 Trinity College Dublin +.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG +.. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR) + +Glossary +******** + +.. glossary:: + :sorted: + + API + This term is an acronym for Application Programming Interface. + + assembler language + The assembler language is a programming language which can be translated very + easily into machine code and data. For this project assembler languages are + restricted to languages accepted by the :term:`GNU` assembler + program for the target architectures. + + C language + The C language for this project is defined in terms of + :term:`C11`. + + C11 + The standard ISO/IEC 9899:2011. + + CCB + This term is an acronym for Change Control Board. + + Doorstop + `Doorstop <https://github.com/doorstop-dev/doorstop>`_ is a + requirements management tool. + + EARS + This term is an acronym for Easy Approach to Requirements Syntax. + + ELF + This term is an acronym for + `Executable and Linkable Format <https://en.wikipedia.org/wiki/Executable_and_Linkable_Format>`_. + + formal model + A model of a computing component (hardware or software) that has a + mathematically based :term:`semantics`. + + GCC + This term is an acronym for `GNU Compiler Collection <https://gcc.gnu.org/>`_. + + GNAT + *GNAT* is the :term:`GNU` compiler for Ada, integrated into the + :term:`GCC`. + + GNU + This term is an acronym for `GNU's Not Unix <https://www.gnu.org/>`_. + + interrupt service + An *interrupt service* consists of an + :term:`Interrupt Service Routine` which is called with a user + provided argument upon reception of an interrupt service request. The + routine is invoked in interrupt context. Interrupt service requests may have + a priority and an affinity to a set of processors. An *interrupt service* is + a :term:`software component`. + + Interrupt Service Routine + An ISR is invoked by the CPU to process a pending interrupt. + + ISVV + This term is an acronym for Independent Software Verification and Validation. + + Linear Temporal Logic + This is a logic that states properties about (possibly infinite) sequences of + states. + + LTL + This term is an acronym for :term:`Linear Temporal Logic`. + + refinement + A *refinement* is a relationship between a specification and its + implementation as code. + + reification + Another term used to denote :term:`refinement`. + + ReqIF + This term is an acronym for + `Requirements Interchange Format <https://www.omg.org/spec/ReqIF/About-ReqIF/>`_. + + RTEMS + This term is an acronym for Real-Time Executive for Multiprocessor Systems. + + scenario + In the context of formal verification, in a setting that involves many + concurrent tasks that interleave in arbitrary ways, a scenario describes a + single specific possible interleaving. One interpretation of the behaviour + of a concurrent system is the set of all its scenarios. + + semantics + This term refers to the meaning of text or utterances in some language. In a + software engineering context these will be programming, modelling or + specification languages. + + software component + This term is defined by ECSS-E-ST-40C 3.2.28 as a "part of a software + system". For this project a *software component* shall be any of the + following items and nothing else: + + * :term:`software unit` + + * explicitly defined :term:`ELF` symbol in a + :term:`source code` file + + * :term:`assembler language` data in a source code file + + * :term:`C language` object with static storage duration + + * C language object with thread-local storage duration + + * :term:`thread` + + * :term:`interrupt service` + + * collection of *software components* (this is a software architecture + element) + + Please note that explicitly defined ELF symbols and assembler language + data are considered a software component only if they are defined in a + :term:`source code` file. For example, this rules out symbols + and data generated as side-effects by the toolchain (compiler, assembler, + linker) such as jump tables, linker trampolines, exception frame information, + etc. + + software product + The *software product* is the :term:`RTEMS` real-time operating system. + + software unit + This term is defined by ECSS-E-ST-40C 3.2.24 as a "separately compilable + piece of source code". For this project a *software unit* shall be any of + the following items and nothing else: + + * :term:`assembler language` function in a + :term:`source code` file + + * :term:`C language` function (external and internal linkage) + + A *software unit* is a :term:`software component`. + + source code + This project uses the *source code* definition of the + `Linux Information Project <http://www.linfo.org/source_code.html>`_: + "Source code (also referred to as source or code) is the version of + software as it is originally written (i.e., typed into a computer) by a + human in plain text (i.e., human readable alphanumeric characters)." + + target + The system on which the application will ultimately execute. + + task + This project uses the + `thread definition of Wikipedia <https://en.wikipedia.org/wiki/Thread_(computing)>`_: + "a thread of execution is the smallest sequence of programmed + instructions that can be managed independently by a scheduler, which is + typically a part of the operating system." + + It consists normally of a set of registers and a stack. The scheduler + assigns processors to a subset of the ready tasks. The terms task and + :term:`thread` are synonym in RTEMS. The term task is used + throughout the Classic API, however, internally in the operating system + implementation and the POSIX API the term thread is used. + + A *task* is a :term:`software component`. + + thread + This term has the same meaning as :term:`task`. + + YAML + This term is an acronym for `YAML Ain't Markup Language <https://yaml.org/>`_. |