Un peu plus sur le Wenyan-lang

Rappel que je suis sinophile, et j'apprécie la culture chinoise depuis que j'ai lu l'art de la guerre. Et je pense que la Chine doit avoir son propre langage de programmation pour concurrencer le monde anglophone et le challenger sur les normes pour les ingénieurs et les programmeurs en utilisant le mandarin. Je me suis penché un peu plus sur le Wenyan-lang, et j'ai demandé à chatGPT de me l'apprendre un peu, en posant des questions sur sa construction, et donc voir comment on peut s'en inspiré un peu avec le Narkanta. Le Narkanta est un peu différent car c'est un langage d'assemblage qui intègre dans des blocs de code de la programmation fonctionnel et orienté objet. Mais je vais expliquer dans un prochain topic tous ça. Continuons sur le Wenyan-lang, et approfondissons-le.

Caractéristiques principales de Wenyan-lang :

  1. Syntaxe basée sur le chinois classique : La syntaxe du Wenyan-lang est inspirée du chinois classique, utilisant des caractères chinois traditionnels pour former des expressions de programmation. Cela inclut l'utilisation de mots tels que "若" (ruò) pour "if" (si), "矣" (yǐ) pour "end" (fin), et ainsi de suite.

  2. Style littéraire : Les programmes écrits en Wenyan-lang ressemblent à des passages littéraires, créant une esthétique poétique. Les développeurs peuvent exprimer des idées complexes de manière élégante en utilisant des constructions de phrases chinoises classiques.

  3. Paradigme fonctionnel : Bien que la syntaxe puisse sembler inhabituelle, Wenyan-lang est basé sur des concepts de programmation fonctionnelle. Il prend en charge des structures de données immuables, des fonctions d'ordre supérieur et d'autres concepts fonctionnels.

  4. Compilateur : Wenyan-lang n'est pas seulement un exercice académique. Il dispose d'un compilateur qui traduit le code Wenyan-lang en JavaScript, ce qui permet d'exécuter les programmes sur une machine virtuelle JavaScript.

  5. Communauté et documentation : Bien que Wenyan-lang ne soit pas aussi répandu que certains autres langages de programmation, il possède une communauté active. Vous pouvez trouver des ressources et de la documentation sur le site officiel et sur des plateformes de développement collaboratif.

Exemple de code Wenyan-lang :

Voici un exemple simple de programme Wenyan-lang qui imprime "Hello, World!":

吾有一言。
曰「問天地好在」。
吾曰:「曰『Hello, World!』也。」。

Ce code se traduit en quelque chose comme "J'ai une expression. Elle dit 'Demande si le ciel et la terre vont bien.' Je réponds : 'Cela dit, c'est "Hello, World!".'"

Cet exemple illustre la manière dont le code Wenyan-lang ressemble à des phrases chinoises classiques tout en incorporant des structures de programmation.

Ressources supplémentaires : - Site officiel de Wenyan-lang - Dépôt GitHub de Wenyan-lang

N'hésitez pas à explorer ces ressources si vous souhaitez en savoir plus ou si vous avez d'autres questions spécifiques sur Wenyan-lang !

Gestion des variables

Le Wenyan-lang utilise une approche intéressante pour gérer les variables en utilisant des caractères chinois comme identificateurs. Comme vous l'avez souligné, il n'y a pas d'alphabet en chinois, mais les caractères chinois eux-mêmes peuvent être utilisés pour représenter des variables.

Voici comment cela fonctionne généralement dans le Wenyan-lang :

  1. Déclaration de variable : Pour déclarer une variable, vous utilisez un caractère ou une combinaison de caractères chinois. Par exemple :
吾有一數。曰「甲」。

Ici, "吾有一數" signifie "J'ai un nombre", et "曰「甲」" signifie "Il s'appelle '甲'", où "甲" est le nom de la variable.

  1. Affectation de valeur : Pour attribuer une valeur à la variable, vous utilisez l'expression "欲得" ("veut obtenir") :
甲者。欲得三。  

Cela signifie "La variable '甲'. Veut obtenir 3." Ici, la variable '甲' est affectée à la valeur 3.

  1. Utilisation de variables : Lorsque vous souhaitez utiliser la valeur d'une variable, vous pouvez simplement faire référence à son nom. Par exemple :
曰「甲之」。

Cela signifie "Il dit 'La valeur de 甲'". C'est une façon de faire référence à la valeur stockée dans la variable '甲'.

Bien que cela puisse sembler inhabituel pour ceux habitués à utiliser des identificateurs alphanumériques, cette approche montre comment le Wenyan-lang exploite les caractères chinois pour créer une syntaxe qui ressemble à du chinois classique tout en conservant les concepts de base de la programmation.

Instruction et bloc de code

Le Wenyan-lang utilise une syntaxe qui imite la structure des phrases en chinois classique pour représenter les instructions et les blocs de code. Voici comment les instructions et les blocs de code sont généralement gérés dans le Wenyan-lang :

  1. Instructions individuelles : Chaque instruction est formulée comme une phrase ou une expression complète en chinois classique. Par exemple, une instruction "if" pourrait ressembler à ceci :
若甲等於三者曰「甲之」。否者曰「無之」。

Ce qui peut être traduit par "Si '甲' est égal à 3, il dit 'La valeur de 甲'. Sinon, il dit 'Rien'."

- "若" (ruò) signifie "si".
- "甲等於三" (jiǎ děngyú sān) signifie "甲 est égal à 3".
- "曰" (yuē) signifie "il dit".
- "「甲之」" (「jiǎ zhī」) est une façon de dire "la valeur de 甲".
  1. Blocs de code : Les blocs de code sont généralement délimités par des expressions telles que "若然者" (ruò rán zhě) pour marquer le début d'un bloc de code "if", et "若非者" (ruò fēi zhě) pour marquer le début d'un bloc "else". Par exemple :
若甲等於三者曰「甲之」。若非者曰「無之」。

Cela indique un bloc "if-else", où le code entre "若甲等於三者" et "若非者" est exécuté si la condition est vraie, sinon le code entre "若非者" et la fin est exécuté.

  1. Fin de bloc : La fin d'un bloc de code est souvent marquée par l'utilisation de "矣" (yǐ), qui signifie "fin". Par exemple :
若甲等於三者曰「甲之」。若非者曰「無之」。矣。

Cela marque la fin du bloc "if-else".

Globalement, le Wenyan-lang utilise des constructions syntaxiques chinoises classiques pour décrire la logique de contrôle de flux et les blocs de code. Bien que cela puisse sembler inhabituel par rapport à d'autres langages de programmation, cela ajoute une esthétique unique et artistique au code source.

Structure de controle

Les structures de contrôle en Wenyan-lang sont définies à l'aide de constructions syntaxiques qui imitent la structure des phrases en chinois classique. Voici une explication des principales structures de contrôle en Wenyan-lang :

  1. Condition "if" :
    • L'instruction "if" est exprimée avec "若" (ruò), ce qui signifie "si".
    • La condition est exprimée après "若", suivie de l'instruction à exécuter si la condition est vraie.
    • L'instruction "else" (sinon) est exprimée avec "若非者" (ruò fēi zhě), ce qui signifie "si non".
    • La condition pour le "else" est spécifiée après "若非者", suivie de l'instruction à exécuter si la condition du "else" est vraie.

Exemple :

若甲等於三者曰「甲之」。若非者曰「無之」。矣。

Cela se traduit par "Si '甲' est égal à 3, il dit 'La valeur de 甲'. Sinon, il dit 'Rien'."

  1. Boucle "for" :
    • La boucle "for" est exprimée avec "吾有一數。" (Wǔ yǒu yī shù), ce qui signifie "J'ai un nombre".
    • La variable de boucle est déclarée après "曰" et la plage est spécifiée après "取其值從".
    • Le bloc de code à répéter suit ensuite.

Exemple :

吾有一數。曰「甲」。取其值從一至三。曰「甲之」。矣。

Cela se traduit par "J'ai un nombre appelé '甲'. Prends sa valeur de 1 à 3. Il dit 'La valeur de 甲'."

  1. Boucle "while" :
    • La boucle "while" est exprimée avec "若" (ruò), suivi de la condition à évaluer.
    • Le bloc de code à répéter suit ensuite.

Exemple :

若甲小於五者曰「甲之」。矣。

Cela se traduit par "Tant que '甲' est inférieur à 5, il dit 'La valeur de 甲'."

  1. Boucle "foreach" :
    • La boucle "foreach" est exprimée avec "吾嘗觀「數列」之每一數。" (Wǔ cháng guān "shùliè" zhī měi yī shù), ce qui signifie "J'ai observé chaque nombre de la séquence".
    • La séquence à itérer est spécifiée entre les guillemets et le bloc de code à exécuter pour chaque élément de la séquence suit.

Exemple :

吾嘗觀「數列」之每一數。曰「得數之」。矣。

Cela se traduit par "J'ai observé chaque nombre de la séquence '數列'. Il dit 'La valeur du nombre'."

Ces exemples illustrent comment les structures de contrôle en Wenyan-lang sont formulées de manière à ressembler à des phrases en chinois classique, tout en restant fonctionnelles dans leur nature.

Structure de donnée

La gestion des structures de données en Wenyan-lang est également effectuée en utilisant des expressions chinoises classiques pour décrire les concepts de tableau et de dictionnaire. Voici comment cela fonctionne :

  1. Tableau :
    • Pour déclarer un tableau, on utilise l'expression "吾有一數列" (Wǔ yǒu yī shùliè), ce qui signifie "J'ai une séquence de nombres".
    • Pour accéder à un élément du tableau, on utilise l'expression "取其" (Qǔ qí), qui signifie "prends son".
    • Pour affecter une valeur à un élément du tableau, on utilise l'expression "欲得其" (Yù dé qí), qui signifie "veut obtenir son".

Exemple :

吾有一數列。曰「甲乙丙」。
取其甲曰「得甲」。

Cela déclare un tableau avec les éléments "甲乙丙" (Jiǎ Yǐ Bǐng), puis accède et imprime le premier élément qui est "甲" (Jiǎ).

  1. Dictionnaire :
    • Pour déclarer un dictionnaire, on utilise l'expression "吾有一物也" (Wǔ yǒu yī wù yě), ce qui signifie "J'ai une collection d'objets".
    • Pour accéder à une valeur dans le dictionnaire, on utilise l'expression "取其" (Qǔ qí), similaire à celle utilisée pour les tableaux.
    • Pour associer une valeur à une clé dans le dictionnaire, on utilise l'expression "以" (Yǐ), ce qui signifie "avec".

Exemple :

吾有一物也。曰「甲」以三。曰「乙」以五。
取其甲曰「得甲」。

Cela déclare un dictionnaire avec les clés "甲" (Jiǎ) et "乙" (Yǐ), associées respectivement aux valeurs 3 et 5. Ensuite, il accède et imprime la valeur associée à la clé "甲".

En résumé, le Wenyan-lang utilise des expressions chinoises classiques pour déclarer, accéder et manipuler des structures de données telles que les tableaux et les dictionnaires. Bien que la syntaxe puisse sembler différente de celle des langages de programmation plus couramment utilisés, elle reste basée sur des concepts fondamentaux de programmation.

Gestion des librairies

Le Wenyan-lang dispose d'un mécanisme appelé "延伸" (Yánshēn), qui peut être utilisé pour inclure des bibliothèques ou des extensions dans le code. Cependant, l'écosystème de bibliothèques pour le Wenyan-lang n'est pas aussi étendu que celui de certains autres langages de programmation plus populaires.

Voici comment le mécanisme "延伸" fonctionne :

  1. Inclusion d'une bibliothèque :
    • Pour inclure une bibliothèque, on utilise l'instruction "延伸" (Yánshēn), suivi du nom de la bibliothèque.
    • Par exemple, si vous voulez inclure une bibliothèque appelée "数学" (Shùxué) pour des fonctions mathématiques, vous pouvez écrire :
延伸「数学」。
 Cela se traduit par "Inclure la bibliothèque '数学'."
  1. Utilisation des fonctions de la bibliothèque :
  2. Une fois la bibliothèque incluse, vous pouvez utiliser les fonctions qui y sont définies.
  3. Par exemple, si la bibliothèque "数学" (Shùxué) inclut une fonction "加" (jiā) pour l'addition, vous pouvez l'utiliser ainsi :
曰「加一和一」。
 Cela se traduit par "Dire 'Ajoute un et un'."

Il est important de noter que le nombre de bibliothèques disponibles pour le Wenyan-lang peut être limité par rapport à d'autres langages de programmation plus établis. De plus, la documentation peut être principalement en chinois, ce qui peut présenter des défis pour les personnes qui ne maîtrisent pas la langue.

Si vous souhaitez utiliser des bibliothèques spécifiques avec le Wenyan-lang, il est recommandé de consulter la documentation officielle ou les ressources communautaires pour obtenir des informations sur les bibliothèques disponibles et leur utilisation.