Ragel

Ragel
Tip de compilatorul mașinii de stări
Dezvoltator Adrian Thurston [1]
Scris in C++ [2]
Sistem de operare Unix , Windows
ultima versiune 6.10 (24.03.2017)
Licență Licență publică generală GNU
Site-ul web complang.org/ragel/
 Fișiere media la Wikimedia Commons

Ragel  este un compilator de mașini de stări care produce cod sursă în C , C++ , C# , Objective-C , D , Java , OCaml , Go și Ruby [3] .

Caracteristici

Codul sursă al mașinii de stări al lui Ragel este un limbaj de expresie regulată extins [4] și/sau o diagramă de stare a mașinii de stări . Ragel este potrivit pentru construirea de analizoare lexicale și pentru specificarea protocoalelor de transfer de date [5] .

Ragel vă permite să injectați acțiuni definite de utilizator în orice moment al execuției unui automat. Pentru a rezolva non-determinismul, este prevăzut un sistem de prioritate pentru operatorii de limbaj obișnuit.

Ragel acceptă vizualizarea automatului generat folosind graphviz .

Exemple de aplicații

Zed Shaw a folosit Ragel pentru serverul său web Mongrel când a scris un parser de solicitări personalizate HTTP de înaltă performanță [6] .

Vezi și

Note

  1. Dr. Adrian D. Thurston Arhivat 24 decembrie 2013 la Wayback Machine la complang.org Ultima modificare: 14 iulie 2013
  2. Proiectul ragel Open Source pe Open Hub: Pagina de limbi - 2006.
  3. Adrian D. Thurston. « Analizarea limbajelor de calculator cu un automat compilat dintr-o singură expresie regulată. Arhivat din original pe 7 septembrie 2012. » În: 11th International Conference on Implementation and Application of Automata (CIAA 2006), Lecture Notes in Computer Science, volumul 4094 , p. 285-286, Taipei, Taiwan, august 2006.
  4. ^ Liqun Chen, Chris J. Mitchell, Andrew Martin (2009) Trusted Computing: Second International Conference, Trust 2009 Oxford, Marea Britanie, 6-8 aprilie 2009, Proceedings . p. 111
  5. V. S. Gurov, M. A. Mazin, A. A. Shalyto. Limbajul text al programării automate  // Buletinul științific și tehnic al Universității de Stat din Sankt Petersburg ITMO . - 2008. - Emisiune. 53 . - S. 258-263 . Arhivat din original pe 20 august 2018.
  6. Ragel State Charts  (engleză)  (link nu este disponibil) . Zed A. Shaw . Preluat la 12 martie 2016. Arhivat din original la 10 martie 2016.

Link -uri