valhallacLe compilateur Valhalla

Il s'agit de l'analyseur et du compilateur pour Valhalla, qui exclut la machine virtuelle sur laquelle le bytecode compilé fonctionne, qui est Brokkr VM.
[!!] Planifier une réécriture complète et un travail d'équilibrage.
Ce qui a été fait jusqu'à présent sur le front-end:
La machine virtuelle, c'est-à-dire le backend de la langue, est développée séparément et progressera semi-indépendante.
Dans votre shell, dans la racine de ce référentiel, vous pouvez écrire:
cargo run [source-file-to-compile.vh] [-o out-file] [-v] Ou, demandez au compilateur d'imprimer des informations de débogage comme des flux de jetons, des arbres de syntaxe, des tables de symbole, des instructions de bytecode, & ct., use --features=debug :
cargo run --features=debug [source-file.vh]Par exemple, vous pouvez courir.
cargo run test_source.vh -v # For verbose output. pour démontrer la compilation avec le fichier de test inclus ( test_source.vh ). L'argument d'un fichier source à compiler est, bien sûr, nécessaire.
current_compiler_test.md
Ce référentiel contient la compilation frontale (compilation de Parser et Bytecode) qui traite la syntaxe et la sémantique du code source. L'AST généré est ensuite compilé en bytecode VM Brokkr. L'exécution du bytecode ultérieur est gérée par la machine virtuelle du langage (machine virtuelle) appelée Brokkr, qui existe séparément de ce référentiel.
Valhalla est un langage de programmation théorique. C'est-à-dire qu'il est basé sur les principes de la théorie des ensembles, d'une manière que tous les types ne sont que des ensembles, et donc tout n'est qu'un élément d'un ensemble. La langue est destinée à donner une nouvelle façon d'interagir avec les types et fournit une façon intuitive d'y penser. Un objectif est qu'il puisse également être utilisé pour vérifier les preuves et autres dans et autour de la théorie des ensembles.
Le langage est un objectif général, mais au lieu d'être totalement orienté objet, ou fonctionnel, etc., il est simplement basé sur la théorie. D'après ce que j'ai rassemblé, ce n'est pas un paradigme très populaire ... probablement pour une bonne raison, mais bon, cela pourrait être intéressant.
Pour être considérablement réduit.
