Ragel (original) (raw)
Ragel est un compilateur d'automates finis générant ses sorties en code source dans les langages suivants : C, C++, Objective-C, Java, Go et Ruby. Il supporte la génération de machines à états basées sur des tableaux ou sur des structures de contrôle. Ragel permet également de visualiser les machines générées sous forme de graphe par l'utilisation de Graphviz.
Property | Value |
---|---|
dbo:abstract | Ragel ist ein von Adrian D. Thurston entwickelter State-Machine Compiler. Er übersetzt Definitionen von Finite-State-Machines (FSM, auch Endlicher Automat genannt) in ausführbaren Programmcode. Dazu können Nichtdeterministische endliche Automaten in der Ragel-eigenen Sprache, deren Operatoren vor allem aus standardisierten regulären Ausdrücken bestehen (ähnlich Konkatenation oder auch Kleenesche und positive Hülle), beschrieben werden. Diese Definitionen werden in den Code der Zielsprache eingebettet. Der Compiler wandelt diese zunächst in deterministische endliche Automaten um, minimiert sie und übersetzt sie anschließend in die Zielsprache. Ragel unterstützt eine Vielzahl von Zielsprachen: C, C++, Assemblersprache, D, Go, Java, Ruby und C#. Der Compiler bietet darüber hinaus verschiedene Optionen um den erzeugten Code zu beeinflussen. Zur Umsetzungen der Übergangstabelle kann z. B. ein Array (table-driven) verwendet werden oder die Zustände werden direkt in Programm code übersetzt (control flow driven). Das Herausstellungsmerkmal Ragels ist, dass es erlaubt Code in der Zielsprache mit Zustandsübergängen zu verknüpfen. Dieser wird vom erzeugten Code automatisch ausgeführt, sobald der entsprechende Übergang stattfindet. Ragel bietet dafür eine Vielzahl von Operatoren, die es ermöglichen Code an verschiedene Übergänge anzuhängen. Dies ermöglicht es neben der reinen Verifizierung bzw. Falsifizierung auch zusätzliche Aufgaben (z. B. das Umwandeln von Zahlen im Dezimalformat in eine Binärform) auszuführen. Ragel ermöglicht zudem eine Visualisierung der Übergangstabelle durch Graphviz: (de) Ragel est un compilateur d'automates finis générant ses sorties en code source dans les langages suivants : C, C++, Objective-C, Java, Go et Ruby. Il supporte la génération de machines à états basées sur des tableaux ou sur des structures de contrôle. Ragel permet également de visualiser les machines générées sous forme de graphe par l'utilisation de Graphviz. (fr) Ragel is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code, and was expanded to support several other languages including Objective C, D, Go, Ruby, and Java. Additional language support is also in development. It supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation. (en) Ragel — компилятор конечных автоматов, производящий исходный код на C, C++, C#, Objective-C, D, Java, OCaml, Go и Ruby. (ru) |
dbo:genre | dbr:Finite-state_machine |
dbo:latestPreviewDate | 2021-02-16 (xsd:date) |
dbo:latestPreviewVersion | 7.0.4 |
dbo:latestReleaseDate | 2017-03-24 (xsd:date) |
dbo:latestReleaseVersion | 6.10 |
dbo:license | dbr:MIT_License dbr:GPL_v2 |
dbo:operatingSystem | dbr:Unix-like dbr:Microsoft_Windows |
dbo:programmingLanguage | dbr:C++ |
dbo:thumbnail | wiki-commons:Special:FilePath/Visualisierung_Ragel.png?width=300 |
dbo:wikiPageExternalLink | https://www.colm.net/open-source/ragel/ http://www.colm.net/open-source/ragel/ |
dbo:wikiPageID | 8052388 (xsd:integer) |
dbo:wikiPageLength | 5786 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1075736548 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Ruby_(programming_language) dbc:Pattern_matching dbr:Regular_expression dbr:Umple dbr:Unix-like dbr:Lexical_analysis dbc:Programming_language_implementation dbr:Compiler dbr:Go_(programming_language) dbr:Graphviz dbr:Control_flow dbr:Thompson's_construction dbr:Comparison_of_parser_generators dbr:Table_(information) dbr:C++ dbr:C_(programming_language) dbr:ASCII dbr:D_(programming_language) dbr:Extended_Backus–Naur_form dbr:Regular_language dbr:HFST dbr:Java_(programming_language) dbr:State_diagram dbr:State_machine dbr:Assembly_Language dbc:Free_compilers_and_interpreters dbc:Parser_generators dbr:Microsoft_Windows dbr:Objective_C dbr:MIT_License dbr:Executable_UML dbr:Finite-state_machine dbr:Text_parsing dbr:Parser_generator dbr:GPL_v2 dbr:Input_validation dbr:File:Visualisierung_Ragel.png |
dbp:developer | Adrian Thurston (en) |
dbp:genre | dbr:Compiler dbr:Finite-state_machine |
dbp:latestPreviewDate | 2021-02-16 (xsd:date) |
dbp:latestPreviewVersion | 7 (xsd:integer) |
dbp:latestReleaseDate | 2017-03-24 (xsd:date) |
dbp:latestReleaseVersion | 6.100000 (xsd:double) |
dbp:license | "Ragel 6 remains under GPL v2 [generated code] covered by the MIT ". (en) Ragel 7: MIT License (en) |
dbp:name | Ragel (en) |
dbp:operatingSystem | dbr:Unix-like dbr:Microsoft_Windows |
dbp:programmingLanguage | dbr:C++ |
dbp:website | http://www.colm.net/open-source/ragel/ |
dbp:wikiPageUsesTemplate | dbt:Commonscatinline dbt:Infobox_software dbt:Portal dbt:Reflist dbt:Start_date_and_age |
dbp:wordnet_type | http://www.w3.org/2006/03/wn/wn20/instances/synset-software-noun-1 |
dcterms:subject | dbc:Pattern_matching dbc:Programming_language_implementation dbc:Free_compilers_and_interpreters dbc:Parser_generators |
gold:hypernym | dbr:Compiler |
rdf:type | owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077 |
rdfs:comment | Ragel est un compilateur d'automates finis générant ses sorties en code source dans les langages suivants : C, C++, Objective-C, Java, Go et Ruby. Il supporte la génération de machines à états basées sur des tableaux ou sur des structures de contrôle. Ragel permet également de visualiser les machines générées sous forme de graphe par l'utilisation de Graphviz. (fr) Ragel is a finite-state machine compiler and a parser generator. Initially Ragel supported output for C, C++ and Assembly source code, and was expanded to support several other languages including Objective C, D, Go, Ruby, and Java. Additional language support is also in development. It supports the generation of table or control flow driven state machines from regular expressions and/or state charts and can also build lexical analysers via the longest-match method. Ragel specifically targets text parsing and input validation. (en) Ragel — компилятор конечных автоматов, производящий исходный код на C, C++, C#, Objective-C, D, Java, OCaml, Go и Ruby. (ru) Ragel ist ein von Adrian D. Thurston entwickelter State-Machine Compiler. Er übersetzt Definitionen von Finite-State-Machines (FSM, auch Endlicher Automat genannt) in ausführbaren Programmcode. Dazu können Nichtdeterministische endliche Automaten in der Ragel-eigenen Sprache, deren Operatoren vor allem aus standardisierten regulären Ausdrücken bestehen (ähnlich Konkatenation oder auch Kleenesche und positive Hülle), beschrieben werden. Diese Definitionen werden in den Code der Zielsprache eingebettet. Der Compiler wandelt diese zunächst in deterministische endliche Automaten um, minimiert sie und übersetzt sie anschließend in die Zielsprache. (de) |
rdfs:label | Ragel (de) Ragel (fr) Ragel (en) Ragel (ru) |
owl:sameAs | freebase:Ragel wikidata:Ragel dbpedia-de:Ragel dbpedia-fa:Ragel dbpedia-fr:Ragel dbpedia-ru:Ragel https://global.dbpedia.org/id/39h3z |
prov:wasDerivedFrom | wikipedia-en:Ragel?oldid=1075736548&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/Visualisierung_Ragel.png |
foaf:homepage | http://www.colm.net/open-source/ragel/ |
foaf:isPrimaryTopicOf | wikipedia-en:Ragel |
foaf:name | Ragel (en) |
is dbo:wikiPageWikiLink of | dbr:Parsing dbr:Pebble_(watch) dbr:Mongrel_(web_server) dbr:Lemon_(parser_generator) dbr:Lex_(software) dbr:Cloudbleed dbr:Comparison_of_parser_generators dbr:Knot_DNS |
is foaf:primaryTopic of | wikipedia-en:Ragel |