Kafe, un langage de programmation (encore, oui)

Un Java-like, en mieux (je troll mais au moins ça attire des gens)

Le problème exposé dans ce sujet a été résolu.

Côté architecture, ce n’est pas très élégant de mélanger le parsing et le typage – ça mélange deux aspects différents dans le même code qui devient compliqué, pénible à maintenir, et limite l’évolution du langage. Il vaut mieux avoir une représentation intermédiaire des programmes typés, avec une structure séparée de celle des arbres syntaxiques, où toutes les parties du programme qui en ont besoin contiennent l’information de typage. L’étape de typage est alors une traduction de l’arbre de syntaxe abstraite vers l’arbre typé, et le bytecode est produit à partir de l’arbre typé (et les optimisations travaillent dessus).

Dans l’AST tu vois que 10 est un nombre, mais pas que status (dans dyn status = 10) est une variable qui contiendra toujours un nombre (pour cela il faut faire des hypothèses sur ton système de types, et propager des information de l’assignant à l’assigné).

+1 -0

Pour répondre à A-312, le C++ a adopté une syntaxe similaire pour le type de retour de la fonction (utile particulièrement lorsque le type est complexe, dépendant ). L’information la plus importante à mon sens c’est le nom de la fonction, pas son type de retour qui n’est qu’une information secondaire parmi tant d’autres.

+1 -0

en construisant le bytecode on déduira que status est un integer valant 10

SuperFola

Ce que je propose, c’est de séparer en plusieurs phases:

1
Source -{Parsing}-> AST -{Typage}-> AST Typé -{Optimisations}-> AST Typé -{Compilation}-> Bytecode

Aujourd’hui tu as l’air de faire

1
Source -{Parsing}-> AST -{Typage + Compilation}-> Bytecode

ce qui rend le code de "Typage + Compilation" plus compliqué qu’il n’a besoin de l’être, et te limite dans tes capacités à étendre ces aspects.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte