From: devel <devel-boun...@rtems.org> on behalf of Joel Sherrill 
<j...@rtems.org>
Reply to: "j...@rtems.org" <j...@rtems.org>
Date: Tuesday 28 November 2023 at 19:31
To: Sebastian Huber <sebastian.hu...@embedded-brains.de>
Cc: "devel@rtems.org" <devel@rtems.org>
Subject: Re: [PATCH] glossary: Add terms



On Tue, Nov 28, 2023 at 10:27 AM Sebastian Huber 
<sebastian.hu...@embedded-brains.de<mailto:sebastian.hu...@embedded-brains.de>> 
wrote:
---
 c-user/glossary.rst   | 50 +++++++++++++++++++++++++++++++++++++++++++
 eng/fv/approaches.rst |  2 +-
 eng/fv/overview.rst   |  6 +++---
 eng/glossary.rst      | 26 +++++++++++++++++-----
 4 files changed, 75 insertions(+), 9 deletions(-)

diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index 82aedcd..9a9d12c 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -1,5 +1,6 @@
 .. SPDX-License-Identifier: CC-BY-SA-4.0

+.. Copyright (C) 2022, 2023 Trinity College Dublin
 .. Copyright (C) 2020 Richi Dubey 
(richidu...@gmail.com<mailto:richidu...@gmail.com>)
 .. Copyright (C) 2015, 2023 embedded brains GmbH & Co. KG
 .. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR)
@@ -17,6 +18,9 @@ Glossary
         A term used to describe an object which has been created by an
         application.

+    AMP
+        This term is an acronym for Asymmetric Multiprocessing.
+
     APA
         This term is an acronym for Arbitrary Processor Affinity.  APA 
schedulers
         allow a thread to have an arbitrary affinity to a processor set, 
rather than
@@ -357,6 +361,10 @@ Glossary
         mathematically intensive situations.  It is typically viewed as a 
logical
         extension of the primary processor.

+    formal model
+        A model of a computing component (hardware or software) that has a
+        mathematically based :term:`semantics`.

This is in the neighborhood of the definitions I found but is missing a word
like rigorous.

For me "mathematically based" implies "rigorous", but I think you are right to 
emphasise this

How about: "A rigorous model of ...." ?


+
     freed
         A resource that has been released by the application to RTEMS.

@@ -386,6 +394,14 @@ Glossary
     GNU
         This term is an acronym for `GNU's Not Unix <https://www.gnu.org/>`_.

+    GPL
+        This term is an acronym for
+        `GNU General Public License <https://www.gnu.org/licenses>`__.
+
+    GPLv3
+        This term is an acronym for
+        `GNU General Public License Version 3 
<https://www.gnu.org/licenses/gpl-3.0.html>`__.
+

Do we need to include an entry for the GPLv2 w/exception that is actually used 
by some RTEMS code.

     GR712RC
         The
         `GR712RC 
<https://www.gaisler.com/index.php/products/components/gr712rc>`_
@@ -511,6 +527,10 @@ Glossary
     LIFO
         This term is an acronym for :term:`Last In First Out`.

+    Linear Temporal Logic
+        This is a logic that states properties about (possibly infinite) 
sequences of
+        states.
+
     list
         A data structure which allows for dynamic addition and removal of
         entries.  It is not statically limited to a particular size.
@@ -520,6 +540,12 @@ Glossary
         are arranged such that the least significant byte is at the lowest
         address.

+    LLVM
+        This term is an acronym for
+        `Low Level Virtual Machine <https://www.llvm.org>`__.
+        The LLVM Project is a collection of modular and reusable compiler and
+        toolchain technologies.
+
     local
         An object which was created with the LOCAL attribute and is accessible
         only on the node it was created and resides upon.  In a single 
processor
@@ -541,6 +567,9 @@ Glossary
         A :term:`task` ``L`` has a lower :term:`priority` than a task ``H``, if
         task ``L`` is less important than task ``H``.

+    LTL
+        This term is an acronym for :term:`Linear Temporal Logic`.
+
     major number
         The index of a device driver in the Device Driver Table.

@@ -632,6 +661,9 @@ Glossary
         mathematically intensive situations.  It is typically viewed as a 
logical
         extension of the primary processor.

+    OBC
+        This term is an acronym for On-Board Computer.
+
     object
         In this document, this term is used to refer collectively to tasks,
         timers, message queues, partitions, regions, semaphores, ports, and 
rate
@@ -806,6 +838,10 @@ Glossary
         A term used to describe routines which do not modify themselves or 
global
         variables.

+    refinement
+        A *refinement* is a relationship between a specification and its
+        implementation as code.
+
     region
         An RTEMS object which is used to allocate and deallocate variable size
         blocks of memory from a dynamically specified area of memory.
@@ -818,6 +854,9 @@ Glossary
         Registers are locations physically located within a component, 
typically
         used for device control or general purpose storage.

+    reification
+        Another term used to denote :term:`refinement`.
+
     remote
         Any object that does not reside on the local node.

@@ -865,6 +904,12 @@ Glossary
         The state of a rate monotonic timer while it is being used to 
delineate a
         period.  The timer exits this state by either expiring or being 
canceled.

+    scenario
+        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.
+

This doesn't cover the common use case of a test scenario which is usually
less about threading and more about values and using a set of methods in
a particular manner.

In the context in which Sebastian asked me for this entry, the term `scenario` 
is used as described above.
But you are right that there are nuances here. In the Promela/SPIN based 
test-generation work, each
counter example we get from SPIN describes a scenario as defined above, and we 
generate C test code
that reproduces that scenario, including the precise interleaving of the tasks 
as per  that scenario.


     schedulable
         A set of tasks which can be guaranteed to meet their deadlines based 
upon
         a specific scheduling algorithm.
@@ -901,6 +946,11 @@ Glossary
     segments
         Variable sized memory blocks allocated from a region.

+    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.
+
     semaphore
         An RTEMS object which is used to synchronize tasks and provide mutually
         exclusive access to resources.
diff --git a/eng/fv/approaches.rst b/eng/fv/approaches.rst
index 6bbac20..fe58a06 100644
--- a/eng/fv/approaches.rst
+++ b/eng/fv/approaches.rst
@@ -168,7 +168,7 @@ in such a way that tests can be generated using the SPIN 
model checker
 Promela is quite a low-level modelling language that makes it easy to get close
 to code level, and is specifically targeted to modelling software. It is one of
 the most widely used model-checkers, both in industry and education. It uses
-assertions, and :term:`Linear Temporal Logic` (LTL) to express properties of
+assertions, and :term:`Linear Temporal Logic` (:term:`LTL`) to express 
properties of
 interest.

 Given a Promela model that checks key properties successfully,
diff --git a/eng/fv/overview.rst b/eng/fv/overview.rst
index 15ce7d8..da981f2 100755
--- a/eng/fv/overview.rst
+++ b/eng/fv/overview.rst
@@ -30,9 +30,9 @@ such as a specification. This relationship is commonly 
referred to as a

 Often it is quite difficult to get a useful formal model of real code. Some
 formal modelling approaches are capable of generating machine-readable
-:term:`scenarios` that describe possible correct behaviors of the system at the
-relevant level of abstraction. A refinement for these can be defined by
-using them to generate test code.
+:term:`scenarios <scenario>` that describe possible correct behaviors of the
+system at the relevant level of abstraction. A refinement for these can be
+defined by using them to generate test code.

This definition of scenario is different from the one in the glossary. It
is more inline with what I expected.

Hmmm. For me, the use of scenarios up above is precisely the same as per the 
scenario glossary entry!

 This is the technique that is used in :ref:`FormalVerifMethodology` to
 verify parts of RTEMS. Formal models are constructed based on requirements
 documentation, and are used as a basis for test generation.
diff --git a/eng/glossary.rst b/eng/glossary.rst
index 0e0b708..42cadc4 100644
--- a/eng/glossary.rst
+++ b/eng/glossary.rst
@@ -1,5 +1,6 @@
 .. 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)

@@ -39,6 +40,10 @@ Glossary
         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`.

Why is this duplicated? Don't we have a single glossary file?

There are other duplicates below. Can we have a single source of truth?

 +
     GCC
         This term is an acronym for `GNU Compiler Collection 
<https://gcc.gnu.org/>`_.

@@ -64,15 +69,15 @@ Glossary
         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.
+        This is a logic that states properties about (possibly infinite) 
sequences of
+        states.

     LTL
-        This term is an acronym for Linear Temporal Logic.
+        This term is an acronym for :term:`Linear Temporal Logic`.

     refinement
-        A *refinement* is a relationship between a specification
-        and its implementation as code.
+        A *refinement* is a relationship between a specification and its
+        implementation as code.

     reification
         Another term used to denote :term:`refinement`.
@@ -84,6 +89,17 @@ Glossary
     RTEMS
         This term is an acronym for Real-Time Executive for Multiprocessor 
Systems.

+    scenario
+        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
--
2.35.3

_______________________________________________
devel mailing list
devel@rtems.org<mailto:devel@rtems.org>
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to