Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/armanddidierjean/tipe-interpreteur-pour-le-langage-ocaml
Projet d'implémentation d'un interpréteur dans le cadre du TIPE
https://github.com/armanddidierjean/tipe-interpreteur-pour-le-langage-ocaml
ast grammar interpreter language ocaml
Last synced: 3 days ago
JSON representation
Projet d'implémentation d'un interpréteur dans le cadre du TIPE
- Host: GitHub
- URL: https://github.com/armanddidierjean/tipe-interpreteur-pour-le-langage-ocaml
- Owner: armanddidierjean
- Created: 2023-01-14T17:25:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-14T17:25:58.000Z (almost 2 years ago)
- Last Synced: 2024-11-10T14:48:38.534Z (2 months ago)
- Topics: ast, grammar, interpreter, language, ocaml
- Language: Python
- Homepage:
- Size: 132 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TIPE - Mise au point d’un interpréteur pour le langage OCaml
## Présentation du projet
Projet réalisé au cours de mon année de classe préparatoire MP\*, dans le cadre de l'épreuve de Travail d'Initiative Personnel Encadré (TIPE).
Mon travail porte sur l'exécution de programmes informatique, en particulier de programmes écrits dans le langage OCaml.
> [Un langage est un] ensemble de symboles et de règles permettant de combiner ces symboles afin de donner des instructions à un ordinateur.
>
> - Centre National de Ressources Textuelles et Lexicales## Principaux objectifs
Ce projet a pour objectif la compréhension du fonctionnement des langages de programmation, en particulier des langages interprétés.
Nous cherchons ensuite à identifier les spécificités du langage OCaml dans l'objectif de construire une grammaire adapté à celui-ci ([grammaire construite](./ressources/references.md)).
Finalement le projet a permis d'implémenter un interpréteur et de le tester.
![](./images/Fonctionnement%20interpr%C3%A9teur.png)
_Schéma présentant le fonctionnement de l'interpréteur_## Principaux résultats
Nous pouvons déterminer le type et les résultats de programmes écrits dans le langage OCaml.
```ocaml
let rec factorielle = fun n ->
if n = 1
then 1
else n * factorielle (n-1)
in factorielle 6;;
```L'utilisation du langage Python pour l'implémentation impose une rapidité limitée et une utilisation conséquente de mémoire. Elle permet en revanche d'utiliser cet interpréteur OCaml sur des machines ne le supportant pas nativement, telle une calculatrice graphique.
| ![](./images/Omega%20value.png) | ![](./images/Omega%20value.png) |
| ------------------------------- | ------------------------------- |_Résultats obtenus sur une calculatrice Numworks avec le framework [Omega](https://github.com/Omega-Numworks/Omega)_