Signal (Programmiersprache)
SIGNAL ist ein Programmiersprache basierend auf synchronisiert Datenfluss (Flows + Synchronisation): Ein Prozess ist ein Satz von Gleichungen auf Elementarflows, die sowohl Daten als auch Kontrolle beschreiben.[1]
Das Signal Formales Modell Bietet die Fähigkeit zu beschreiben Systeme mit Mehrere Uhren[2][3] (polychrone Systeme) als Relationale Spezifikationen. Beziehungen sind als Teilspezifikationen und als Spezifikationen von nützlich nicht deterministisch Geräte (zum Beispiel nicht deterministisch Bus) oder externe Prozesse (zum Beispiel ein unsicherer Autofahrer).
Die Verwendung des Signals ermöglicht es, zu angeben[4] eine Anwendung, um eine zu entwerfen die Architektur, um detaillierte Komponenten zu verfeinern bis zu RTOs[Klarstellung erforderlich] oder Hardwarebeschreibung. Das Signalmodell unterstützt a Design Methodik Was geht von Spezifikation zu Implementierung, aus Abstraktion zu Konkretisierung, aus Synchronität zu Asynchronität.
Signal wurde hauptsächlich in entwickelt in INRIAEspresso -Team seit den 1980er Jahren, gleichzeitig wie ähnliche Programmiersprachen, Esterel und Lüster.
Eine kurze Geschichte
Die Signalsprache wurde zuerst für für Signalverarbeitungsanwendungen Anfang der 1980er Jahre. Es wurde vorgeschlagen, die Nachfrage nach neu zu beantworten Domänenspezifisch Sprache für das Design von Signalverarbeitungsanwendungen, Adoption a Datenfluss und Blockdiagramm Stil mit Array und Schiebefenster Betreiber. P. Le Guernic, A. Benveniste und T. Gautier waren für die Sprachdefinition verantwortlich. Das erste Papier über Signal wurde 1982 veröffentlicht, während die erste vollständige Beschreibung des Signals in der Doktorarbeit von T. Gautier erschien. Die symbolische Darstellung des Signals über Z/3Z (über [-1,0,1]) wurde 1986 eingeführt. Ein voller Signal Compiler, der auf der Taktrechnung auf Hierarchie booleschlicher Uhren basiert, wurde von L. Besnard in seinem beschrieben Die Doktorarbeit im Jahr 1992. Der Taktkalkül wurde später von T. Amagbegnon mit dem Vorschlag von kanonischen Formen Arborescent verbessert.
In den neunziger Jahren wurde die Anwendungsdomäne der Signalsprache in allgemeine eingebettete und Echtzeitsysteme ausgedehnt. Der relationsorientierte Spezifikationsstil ermöglichte die zunehmende Konstruktion der Systeme und führte auch zum Entwurf unter Berücksichtigung von mehrschlossenen Systemen im Vergleich zur ursprünglichen Einzel-Clock-basierten Implementierung von Esterel und Glanz. Darüber hinaus wurden auch das Design und die Implementierung verteilter eingebetteter Systeme im Signal berücksichtigt. Die entsprechende Forschung umfasst die von B. Chéron vorgeschlagenen Optimierungsmethoden, die von B. Le Goff definierten Clustering -Modelle, die von O. maffeïs formalisierte Abstraktion und separate Zusammenstellung und die Implementierung verteilter Programme, die von P. Aubry entwickelt wurden.
Die Polychrony -Toolsets
Das Polychrony -Toolset ist ein Open-Source-Entwicklung Umgebung für kritische/eingebettete Systeme basierend auf Signal a Echtzeit polychron Datenfluss Sprache. Es bietet eine einheitliche Modellgetriebene Umgebung Um die Design-Erkundung durch Top-Down-und Prost Entwurfsmethoden formell unterstützt durch Designmodelltransformationen von Spezifikation zu Implementierung und von Synchronität zur Asynchronität. Es kann in enthalten sein heterogen Entwurfssysteme mit verschiedenen Eingabeformalismen und Ausgabesprachen.
Polychrony ist eine Reihe von Werkzeugen, die aus:
- Eine Signalstapel Compiler
- A Grafische Benutzeroberfläche (Editor + Interaktiver Zugriff auf Kompilierfunktionen)
- Das Sigali Werkzeug, ein zugehöriges formales System für formelle Überprüfung und Controller -Synthese.[5] Sigali wird zusammen mit dem entwickelt INRIA Vertecs Projekt.[6]
Die KMU -Umgebung
Die Umgebung von KMU (Signal Meta unter Eclipse) ist a Frontend von Polychronie in der Finsternis Umgebung basierend auf Modellgetriebene Engineering (MDE) Technologien. Es besteht aus einer Reihe von Eclipse-Plug-Ins, die auf dem angewiesen sind Eclipse Modeling Framework (EMF). Die Umgebung basiert auf KMU, a Metamodell[7] der Signalsprache, die mit Modus -Automaten erweitert wurde[8] Konzepte.
Die KMU-Umgebung besteht aus mehreren Plug-Ins, die entsprechen:
- Ein reflexiver Redakteur: a Baum Ansicht, die die Manipulation von Modellen an das KMU -Metamodell entsprechen.
- Ein grafischer Modellierer basierend auf der Aufgerichtet Modellierungsmöglichkeiten (vgl. Vorheriges Bild).
- Ein reflexiver Editor und eine Eclipse -Ansicht, um Kompilierungsszenarien zu erstellen.
- Eine direkte Verbindung zu den Polychrony -Diensten (Zusammenstellung, formelle Überprüfung, etc.).
- A Dokumentation und Modellbeispiele.
Siehe auch
- Esterel
- Glanz (Programmiersprache)
- Synchrone Programmiersprache
- Datenflow -Programmierung
- Programmiersprache
- Global asynchrone lokal synchron
- Formelle Überprüfung
- Modellprüfung
- Formale Semantik von Programmiersprachen
- Aadl
- Simulink
- Avionik
- System-Design
- Asynchronität (Computerprogrammierung)
Notizen und Referenzen
- ^ P. Le Guernic, T. Gautier, M. Le Borgne und C. Le Maire. Programmieren von Echtzeitanwendungen mit Signal. Proceedings of the IEEE, 79 (9): 1321-1336, September 1991.
- ^ P. Le Guernic, J.-P. Talpin und J.-C. Le Lann. Polychronität für das Systemdesign. Journal für Schaltungen, Systeme und Computer, Sonderausgabe zum anwendungsspezifischen Hardwaredesign, World Scientific, April 2003 (auch als INRIA -Forschungsbericht 4715, 2003 verfügbar).
- ^ A. Gamatié und T. Gautier. Der Signal -Synchronen -Multiclock -Ansatz für das Design verteilter eingebetteter Systeme. IEEE -Transaktionen auf parallelen und verteilten Systemen, 21 (5): 641-657, Mai 2010.
- ^ A. Gamatié. Entwerfen eingebetteter Systeme mit der Signalprogrammiersprache: Synchrone, reaktive Spezifikation. ISBN978-1-4419-0940-4. Buch herausgegeben von Springer - New York, 260 Seiten, 2010.
- ^ A. Benveniste, P. Bournai, T. Gautier, M. Le Borgne, P. Le Guernic und H. Marchand. Die Signaldeklarative Synchronsprache: Controller -Synthese und Systeme/Architekturdesign. 40. IEEE -Konferenz über Entscheidung und Kontrolle, 2001.
- ^ H. Marchand, P. Bournai, M. Le Borgne, P. Le Guernic, Synthese von diskreten Ereigniscontrollern basierend auf der Signalumgebung, Diskretes Ereignisdynamisches System: Theorie und Anwendungen, 10 (4): 325-346, Oktober 2000.
- ^ C. Brunette, J.-P. Talpin, A. Gamatié und T. Gautier. Ein Metamodell für das Design von polychronen Systemen. Zeitschrift für Logik und algebraische Programmierung, 78 (4): 233-259, Elsevier, April 2009.
- ^ J.-P.Talpin, C. Brunette, T. Gautier und A. Gamatié.Polychronous modus automata.Proceedings der 6. ACM & IEEE International Conference über eingebettete Software (EMSOft '06), ACM Press, Oktober 2006, 83-92.
Externe Links
- Das INRIA/IRISA -Espresso -Team
- Das Polychrony Toolset, das dem Signal gewidmet ist (offizielle Website der Polychronität)
- Synchronelabor (der synchrone Sprachglanz)
- Esterel (das synchrone Sprachesterel)