Willkommen bei Bartels
Charakteristische Eigenschaften der User Language - Deutsche Version Characteristics of the Bartels User Language - English Version
Bartels

Bartels System GmbH
[13.07.2017 13:03:54 [UTC]] Willkommen bei Bartels / AktualisiertBartels
Bartels AutoEngineer
BAE Produktinfo
BAE Preisliste
BAE Downloads
BAE Dokumentation
BAE Installationsanleitung
BAE Benutzerhandbuch
BAE Bibliotheken
User Language Programmierhandbuch
Vorwort
1 Einleitung
1.1 Was ist Bartels User Language?
1.2 Charakteristische Eigenschaften der User Language
1.2.1 Bartels User Language im Vergleich zu C
1.2.2 Datentypen, Konstanten, Variablen
1.2.3 Operatoren, Zuweisungen
1.2.4 Kontrollstrukturen
1.2.5 Programmfluss, Funktionen
1.2.6 Integrierte Spezialfunktionen
2 Sprachbeschreibung
3 Programmiersystem
4 BAE User Language-Programme
A Konventionen und Definitionen
B Index-Variablen-Typen
C Systemfunktionen
BAE Update-Historie
BAE Nächste Version Freigabemitteilungen Vorabinfo
BAE V8.0 Freigabemitteilungen
BAE V7.8 Freigabemitteilungen
BAE V7.6 Freigabemitteilungen
BAE V7.4 Freigabemitteilungen
BAE V7.2 Freigabemitteilungen
BAE V7.0 Freigabemitteilungen
BAE V6.8 Freigabemitteilungen
BAE V6.6 Freigabemitteilungen
BAE V6.4 Freigabemitteilungen
BAE V6.2 Freigabemitteilungen
BAE V6.0 Freigabemitteilungen
BAE V5.4 Freigabemitteilungen
BAE V5.0 Freigabemitteilungen
BAE V4.6 Freigabemitteilungen
BAE V4.4 Freigabemitteilungen
BAE V4.2 Freigabemitteilungen
BAE V4.0 Freigabemitteilungen
BAE V3.4 Freigabemitteilungen
BAE Support
BAE Contrib
BAE Entwickler und Dienstleister
Elektronikentwicklung
Sport
Firmenprofil
Impressum
Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Einleitung :: Charakteristische Eigenschaften der User Language
Bartels User Language - Programmierhandbuch

1.2 Charakteristische Eigenschaften der User Language

Bartels AutoEngineer® Dokumentation
 

1.2.1 Bartels User Language im Vergleich zu C

Wie bereits einleitend erwähnt, ist Bartels User Language eine Programmiersprache, die auf dem Sprachumfang von C basiert. Kommentare sind wie in C üblich durch /* und */ zu begrenzen bzw. werden wie in C++ üblich mit // eingeleitet und durch das Zeilenende begrenzt.

Als elementare Datentypen sind char, int und double in Bartels User Language enthalten. Im Unterschied zu C fehlt hier der Datentyp float ebenso wie die Möglichkeit der Qualifizierung elementarer Datentypen (short, unsigned, long). Zeiger sind in der Bartels User Language nicht implementiert. An Stelle von char-Vektoren zur Darstellung von Zeichenketten kann in Bartels User Language der als elementar zu betrachtende Datentyp string verwendet werden. In Erweiterung zu C enthält Bartels User Language den ebenfalls als elementar zu betrachtenden speziellen Datentyp index. Über diesen Datentyp werden die Möglichkeiten des Zugriffs auf die Design-Datenbank (DDB) des Bartels AutoEngineer definiert. index kann dabei als Index in einen Vektor von DDB-Strukturen verstanden werden. Über einen speziellen Operator ist der Zugriff auf die Elemente der darüber adressierten Struktur möglich. Die index-Typen sowie die zugehörigen Strukturelemente sind vordefiniert (siehe Anhang B).

Vektoren werden im Gegensatz zu C dynamisch verwaltet, d.h. die Definition fester Vektorfeldgrenzen entfällt in der User Language. Ebenso besteht in der User Language die Möglichkeit, zusammengesetzte, komplexe Datentypen (Strukturen, Arrays) einander direkt zuzuweisen, sofern diese typkompatibel sind und dieselbe Dimensionierung aufweisen.

Die Vereinbarung der aus C bekannten Speicherklassen auto, extern und register ist in der Bartels User Language nicht explizit möglich. Grundsätzlich werden in der User Language alle innerhalb von Funktionen definierten Variablen der Speicherklasse auto zugeordnet, alle außerhalb von Funktionen definierten Variablen gelten als globale Variablen, sofern sie nicht explizit der Speicherklasse static zugeordnet sind. Ebenso gelten alle im Programmtext definierten Funktionen als global vereinbart, sofern sie nicht explizit der Speicherklasse static zugeordnet sind. Der Geltungsbereich globaler Variablen und Funktionen erstreckt sich auf das gesamte Programm, während als static deklarierte Variablen und Funktionen nur Gültigkeit im aktuellen Programmtext (nicht jedoch in einem noch zu linkenden Programmtext) besitzen.

Mechanismen zur Spracherweiterung mit Hilfe eines Makro-Preprozessors werden in Bartels User Language ebenfalls unterstützt; so stehen die aus C bekannten Preprozessor-Anweisungen #include, #define, #undef, #if, #ifdef, #ifndef, #else und #endif auch in der User Language zur Verfügung.

 

1.2.2 Datentypen, Konstanten, Variablen

Bartels User Language enthält die elementaren Datentypen char (Zeichen), int (ganzzahliger Wert), double (rationale Zahl doppelter Genauigkeit), string (Zeichenkette), sowie index (vordefinierter Index auf DDB-Struktur; siehe Anhang B). Daneben lassen sich aus den elementaren Datentypen abgeleitete Datentypen (Vektoren bzw. Arrays sowie Strukturen) definieren.

Bartels User Language erlaubt die Verwendung von Konstanten für die elementaren Datentypen. char-Konstanten sind dabei durch einfache, string-Konstanten durch doppelte Anführungszeichen zu begrenzen. Die in C übliche Verwendung des Backslashs (\) als Fluchtsymbol zur Angabe grafisch nicht darstellbarer Zeichen ist zulässig. Ganzzahlige Konstanten können wahlweise in Dezimal-, Oktal- oder Hexadezimalschreibweise dargestellt werden. Festkommakonstanten müssen einen Dezimalpunkt enthalten. Daneben ist auch die wissenschaftliche Gleitkommadarstellung mit Exponent erlaubt.

Konstante Ausdrücke bestehen aus Konstanten und Operatoren und werden bereits während der Übersetzung durch den Bartels User Language Compiler bewertet (Constant Expression Evaluation).

Alle Variablen müssen vereinbart werden, wodurch jeweils der Datentyp der Variablen, sowie deren Name festgelegt wird. Variablennamen müssen mit einem Buchstaben oder einem Unterstrich (_) beginnen und können nachfolgend beliebig viele Buchstaben, Ziffern oder Unterstriche aufweisen. Der Compiler unterscheidet bei der Verwendung von Buchstaben in Variablennamen zwischen Groß- und Kleinschreibung. Variablen können bereits bei deren Vereinbarung initialisiert werden. Wird eine nicht initialisierte Variable verwendet, dann gibt der Compiler ggf. eine entsprechende Warnmeldung aus. Der Interpreter hingegen wird in solchen Fällen die entsprechende Variable mit einem Nullwert initialisieren.

 

1.2.3 Operatoren, Zuweisungen

Bartels User Language verfügt über die aus C bekannten Operatoren (?:, +, -, *, /, %, >, >=, <, <=, ==, !=, &&, ||, !, ++, --, &, |, ^, <<, >>, ~). Die Reihenfolge des Vorrangs für die Bewertung von Operatoren entspricht ebenfalls der Programmiersprache C. Erscheinen Operanden mit verschiedenen Datentypen zusammen in Ausdrücken, dann werden deren Werte in einen gemeinsamen Datentyp umgewandelt. Derartige Umwandlungen finden allerdings nur dann statt, wenn sie möglich und auch sinnvoll sind (ansonsten Fehlermeldung durch den Compiler). Eine Erweiterung gegenüber C ergibt sich aus der Möglichkeit, den Additionsoperator + sowie die Vergleichsoperatoren (>, >=, <, <=, ==, !=) direkt auf den Datentyp string anzuwenden.

Eine Zuweisung erfolgt üblicherweise durch den =-Operator, wobei der Ausdruck auf der rechten Seite des Gleichheitszeichens der Variablen auf der linken zugewiesen wird. Die in C üblichen zusammengesetzten Zuweisungsoperatoren (+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=) sind auch in Bartels User Language zulässig.

 

1.2.4 Kontrollstrukturen

Durch Kontrollstrukturen wird die Reihenfolge der auszuführenden Aktionen definiert. Bartels User Language erlaubt alle aus C bekannten Kontrollstrukturen außer der goto-Anweisung sowie der Definition von Marken. Die verfügbaren Kontrollstrukturen sind somit if bzw. if-else, switch, while, for, do-while, break und continue. Eine Erweiterung gegenüber C bildet die forall-Kontrollstruktur, mit der ein repetitives Abarbeiten von index-Datentyp-Variablen möglich ist.

 

1.2.5 Programmfluss, Funktionen

Wie C ermöglicht auch Bartels User Language die Zerlegung großer Problemstellungen in kleinere mit Hilfe von Funktionen. Zu unterscheiden ist dabei zwischen den in Bartels User Language eingebundenen Systemfunktionen (siehe Anhang C) und den Funktionen, die der Programmierer innerhalb eines Programms selbst definiert (Anwenderfunktionen). Die Definition und Deklaration der Anwenderfunktionen mit ihren Funktionsparametern entspricht der Vorgehensweise in C. Ebenso ist die Anwenderfunktion mit dem Namen main immer die erste Funktion, die bei einem Programmlauf aufgerufen wird (d.h. die Funktion main muss i.d.R. definiert sein, damit ein User Language-Programm überhaupt "etwas tut"). Im Gegensatz zu C unterscheidet Bartels User Language bei der Bewertung von an Funktionen übergebenen Parametern nicht zwischen "Call-By-Value" und "Call-By-Reference"; alle Parameter werden jeweils durch das "Call-By-Reference"-Verfahren bewertet, wodurch selbstverständlich nicht (wie sonst in C üblich) mit Zeigern gearbeitet werden muss, um geänderte Parameterwerte an einen Funktionsaufrufer zurückzumelden.

 

1.2.6 Integrierte Spezialfunktionen

Bartels User Language stellt dem Anwender einige spezielle Werkzeuge zur Verfügung, die es aufgrund ihres umfangreichen Funktionsspektrums und ihrer außerordentlichen Mächtigkeit verdienen, an dieser Stelle gesondert erwähnt zu werden.

So ist in die Bartels User Language ein BNF-Precompiler zur Realisierung von Interfaceprogrammen für die Bearbeitung von Fremddatenformaten integriert. Unter Verwendung der zugehörigen Scanner- und Parserfunktionen lassen sich in einfacher und eleganter Weise Programme zur Verarbeitung praktisch beliebiger ASCII-Datenformate implementieren (siehe hierzu auch Kapitel 2.6.4 dieses Handbuchs).

Bartels User Language enthält des Weiteren SQL (Structured Query Language)-Funktionen zur Verwaltung Relationaler Datenbanken. Damit stehen dem Anwender Softwaretools zur Programmierung von Datenbankmanagementsystemen zur Verfügung. Die entsprechenden SQL-Zugriffsfunktionen erlauben es, z.B. eine Datenbank für Bauteildaten zur Variantenverwaltung in den Bartels AutoEngineer integrieren. Damit lassen sich in einfacher Weise "was wäre wenn"-Analysen (Kosten, Lagerbestand, usw.) für verschiedene Varianten eines Layouts durchführen, sowie komfortable Datenbankfunktionen zur schnellen Auswahl geeigneter Bauteile mit einer kontrollierten Zuordnung von Gehäusebauform und Bauteilwert implementieren. Dies ist jedoch nur ein Beispiel aus dem breiten Anwendungsspektrum; selbstverständlich lassen sich auch Datenbanksysteme zur Projektverwaltung, zum Projektmanagement, zur Versionsverwaltung, zur Produktionsplanung und -steuerung (PPS), zur Adressverwaltung, zur Verwaltung von Lieferantenverzeichnissen und Kundendateien, usw. realisieren. Anhang C dieses Handbuchs enthält die Beschreibungen der SQL-Systemfunktionen.

Bartels :: Bartels AutoEngineer :: BAE Dokumentation :: User Language Programmierhandbuch :: Einleitung :: Charakteristische Eigenschaften der User Language

Charakteristische Eigenschaften der User Language
© 1985-2017 Oliver Bartels F+E • Aktualisiert: 11. October 2010, 10:33 [UTC]

© 1985-2017 Oliver Bartels F+E Bartels Startseite Kontakt und Impressum

Webentwicklung Baumeister Mediasoft Engineering

Charakteristische Eigenschaften der User Language - Deutsche Version Characteristics of the Bartels User Language - English Version