This repository contains a Racket implementation utilizing the Redex library to model and manipulate regular expressions. It demonstrates the application of Redex for defining and testing the semantics of regular expressions.
- Regular Expression Modeling: Defines the syntax and semantics of regular expressions.
- Reduction Semantics: Implements reduction relations to model the evaluation of regular expressions.
- Testing Framework: Includes properties and tests to verify the correctness of the regular expression semantics.
typed-expr.rkt: Defines the syntax and type system for the language.arith.rkt: Contains arithmetic operations and evaluation functions.gen-expr.rkt: Generates random expressions for testing.properties.rkt: Defines properties for testing the expressions.typed-exp-prof.rkt: Profiles the performance of typed expressions.regex-vm-compiler.rkt: Contains the compilation logic for transforming regular expressions into executable forms.regex-vm-processor.rkt: Implements the evaluation of regular expressions.assembly.rkt: Defines the assembly language for the virtual machine.typed-expr.rkt: Defines the typed expressions and their semantics.
To get started, clone this repository:
git clone https://github.com/daher13/racket-redex.gitTo run the project, execute the typed-expr.rkt file:
racket typed-expr.rktThis will evaluate the regular expressions defined within the project and run the associated tests.