Konferenzbeitrag
Text statt C++: Automatisierung des Systementwurfs mit Hilfe natürlicher Sprachverarbeitung
Lade...
Volltext URI
Dokumententyp
Text/Conference Paper
Dateien
Zusatzinformation
Datum
2013
Autor:innen
Zeitschriftentitel
ISSN der Zeitschrift
Bandtitel
Verlag
Gesellschaft für Informatik e.V.
Zusammenfassung
Programmiersprachen stellen eine Schnittstelle zwischen Mensch und Maschine zur Verfügung. Es gibt heutzutage kaum ein elektronisches System, eine Hardwarekomponente oder Software, welche nicht durch Sprachen wie C++, Java, SystemC oder anderen beschrieben wird. Dabei haben Programmiersprachen den erheblichen Nachteil, dass sie spezielles Expertenwissen erfordern. Wäre es möglich Systeme direkt in natürlicher Sprache zu beschreiben und automatisch umzusetzen, würden viele technische Hürden fallen. Doch natürliche Sprachen leiden an der nicht vorhandenen Eindeutigkeit. So ist z.B. bei dem Satz „Jede Komponente wird durch eine Fernbedienung gesteuert“ zunächst unklar, ob alle Komponenten durch die gleiche Fernbedienung gesteuert werden oder ob jede Komponente ihre „eigene“ Fernbedienung hat. Im Rahmen dieses Tutorials werden Techniken und Methoden eingeführt, mit denen sich die Lücke zwischen Mensch und Maschine beim Entwurf von elektronischen Systemen schließen lässt. Dabei finden insbesondere aktuelle Fortschritte der natürlicher Sprachverarbeitung (engl.: Natural Language Processing, kurz: NLP) Anwendung. Generell ist es zwar nicht möglich, in allen Fällen die korrekte Semantik von natürlichsprachlichen Sätzen zu ermitteln, allerdings lassen sich trotzdem wichtige Informationen daraus ableiten. So können z.B. mit einer einfachen grammatikalischen Analyse wesentliche Komponenten einer Systembeschreibung ermittelt werden: Aus Subjekt, Verb und Objekt eines Satzes lassen sich Akteure, Methoden bzw. Komponenten eines Systems ableiten. Adjektive, die ein Objekt näher beschreiben, lassen sich als Attribute von Komponenten identifizieren. Diese Informationen erlauben es, aus einem Text automatisch erste formale Beschreibungen z.B. in der Unified Modeling Language (UML) zu erzeugen. Dies führt zwar noch nicht zu einer automatischen Übersetzung von Text nach C++, erlaubt aber bereits Laien formale Beschreibungen eines gewünschten Systems zur Verfügung zu stellen.