Ragel

Ragel compile des machines d'état finis exécutables à partir de langues ordinaires
Télécharger maintenant

Ragel Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Adrian Thurston
  • Site Internet de l'éditeur:
  • http://research.cs.queensu.ca/~thurston/ragel/
  • Systèmes d'exploitation:
  • Mac OS X
  • Taille du fichier:
  • 950 KB

Ragel Mots clés


Ragel La description

Ragel compile des machines d'état finis exécutables à partir de langages réguliers Ragel compile des machines d'état finis exécutables à partir de langues ordinaires. Ragel cible C, Objective-C, D, C ++, Java et Ruby. Les machines d'état Ragel peuvent non seulement reconnaître les séquences d'octets comme des machines d'expression régulières, mais peuvent également exécuter du code sur des points arbitraires dans la reconnaissance d'une langue régulière. L'emboîtement au code est effectuée à l'aide de gestionnaires en ligne qui ne perturbent pas la syntaxe de langues ordinaire.La langue principale consiste en des opérateurs d'expression réguliers standard (tels que les opérateurs de l'union, de la concaténation et de l'étoile de Kleeene) et des opérateurs d'exploitation d'actions. Les expressions régulières de l'utilisateur sont compilées sur une machine d'état déterministe et les actions intégrées sont associées aux transitions de la machine. Comprendre la relation formelle entre expressions régulières et automates finis déterministes est la clé d'utiliser Ragel efficacement.Ragel fournit également des opérateurs qui vous permettent de contrôler tout non-déterminisme que vous créez, construisez des scanners et de créer des machines d'état à l'aide d'un modèle STecherTART. Il est également possible d'influencer l'exécution d'une machine à états à l'intérieur d'une action intégrée en sautant ou en appelant à d'autres parties de la machine, ou de retraitement Input.Ragel fournit une interface très flexible à la langue hôte qui tente de placer des restrictions minimales sur la manière dont Le code généré est intégré à l'application. Le code généré n'a pas de dépendances. Quel type de tâche est-ce que Ragel est bon pour? · Écrire des implémentations de protocole robustes. · Analyse des formats de données. · Analyse lexicale des langages de programmation. · Valider l'entrée de l'utilisateur.Le sont des caractéristiques clés de "Ragel": · Constructionnez des machines d'état fini utilisant: les opérateurs de langage réguliers, les opérateurs de diagramme d'état, un opérateur de scanner, une certaine mélange des actions ci-dessus · Intégrer des actions dans des machines dans des endroits arbitraires. · Contrôler le non-déterminisme à l'aide d'opérateurs gardés. · Minimiser les machines d'état utilisant l'algorithme de Hopcroft. · Visualisez la sortie avec GRAPHVIZ. · Utilisez des alphabets d'octets, d'octets à double octet ou de taille de mots. · Générez du code C, C ++, Objective-C, D, Java ou Rubis sans dépendances. · Choisissez parmi les machines d'état pilotées de table ou de contrôle. Quoi de neuf dans cette version: · Un bogue dans la génération GRAPHVIZ a été corrigé. · Un bug lié aux systèmes et machines de 64 bits définis avec des numéros hexagonaux a été corrigé. · Le système de construction a été déplacé vers l'automate.


Ragel Logiciels associés

Tapissera

Techniques et paradigmes pour la synthèse expressive, la transformation et le rendu de l'audio environnemental ...

170 24.5 MB

Télécharger