-
Créer un langage qui brouille les frontières entre les variables et les fonctions et d'autres outils de codage en introduisant une structure unique qui stocke et suit tous les composants d'un programme.
-
Définir un cadre général qui peut améliorer la façon dont nous échangeons des algorithmes et des scripts en tirant parti d'un middleware que tout autre langage peut interpréter facilement.
-
Amélioration de la façon dont nous stockons les variables en mémoire en ajoutant de nouveaux paradigmes qui gèrent le heap et le stack d'une manière plus efficace.
-
Mettre l'accent sur la réutilisabilité du code en mettant à niveau les blocs conditionnels et itératifs en pseudo-fonctions pouvant être appelées plusieurs fois.
-
Simplifier la concurrence et le threading en ajoutant l'option pour tout bloc donné à s'exécuter de manière asynchrone dans son propre thread géré par le langage. Cela rendra nécessaire d'introduire un type de données responsable du transfert des données via les pipes. Le langage utilisera les pipes de C pour introduire une approche plus intuitive pour son utilisation.
-
Le but le plus ambitieux de ce projet et le plus intéressant est de créer des scripts simplement en spécifiant quelques variables. Puisque le langage est créé par une structure de données unique, cette dernière serait capable de construire des instructions de manière autonome.
De nombreux langages de programmation sont conçus d'une manière standard qui permet à l'utilisateur d'assumer la responsabilité de gérer ses variables manuellement. Dictel est un langage qui offrira des outils pour aider à faire les choses de manière plus sécurisée et concise. De plus, il n'existe pas de moyen standardisé pour traduire un langage à une autre. Dictel peut aussi fonctionner comme une couche intermédiaire afin que les programmes puissent devenir facilement portables puisque le langage ne stocke que des paires clé-valeur de variables qui composent le script. Cela peut également inclure des fonctions et bien sûr la fonction main.
add(maVariable, 45)
add(maVariable)
add(maVariable, 45, use=1)
add(maVariable, 45, type="int")
add(maVariable, allocate="5*sizeof(int)")
add(maVariable, 45, state="immutable")
add(maVariable, 45, state="nonNullable")
add(maVariable, [45, 46, 47], type="int[]")
add(maFonction, kind="function", (maVariable) => {
maVariable = maVariable + 1
})
add(maFonction, kind="function", (maVariable) => {
maVariable = maVariable + 1
}, run="asynchron")
add(monPipe, type="pipe")
add(monIf, kind="if", (condition) ? {
maVariable = maVariable + 1
} : {
maVariable = maVariable - 1
})
add(monFor, kind="for", (iterator) => {
maVariable = maVariable + 1
})
add(monWhile, kind="while", (condition) => {
maVariable = maVariable + 1
})
while(condition){
for(i=0, i<6, i=i+1){
if(condition){
maVariable = maVariable + 1
}
else {
maVariable = maVariable + 1
}
}
}
maVariable = true ? 1 : 0 // maVariable sera donc égale à 1
add(monRange, 1..100)
add(monSwitch, kind="when", (monNombre) => {
1 -> maVariable = 1
2 -> maVariable = 2
3 -> maVariable = 3
_ -> maVariable = 0 // valeur par défaut
})
add(maStructure, kind="struct", (monComposant1= 5, monComposant3= 65) => { // monComposant3= 6.5f
monComposant1 -> int
monComposant2 -> string
monComposant3 -> float
monComposant4 -> int[]
})
maVariable = 500
del(maVariable)
params(maVariable) // type, memoire, TTL, etc.
log("Hello World")
monNom = scan()
log("Hello ${monNom}")
dict.json
add(main, kind="function", ()=>{
log("Hello Ensias!")
})
>>> dict main.dt
Hello Ensias!
- DOUSLIMI Yassir
- EL BIACHE Houda
- EDDAGHAL Mohammed
- EL ARFAOUI Ikrame
- El AZHAR Asmaa
- EL FAKHORI Fouad