Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc.
avec une traduction rapide et sans machine virtuelle
Piotr Fusik, ingénieur logiciel, a récemment présenté un nouveau langage de programmation baptisé Ć. Il décrit Ć comme un nouveau langage de programmation qui peut être traduit automatiquement en C, Java, C#, JavaScript, ActionScript, D, Perl, Python, Swift et OpenCL. La description indique que le code ainsi traduit est léger (pas machine virtuelle, d'émulation ni de gros runtime), lisible par l'homme et s'adapterait convenablement au langage cible (y compris les conventions de nommage et les commentaires de documentation).
Le langage Ć et ses caractéristiques
Ć est un langage destiné aux programmeurs ayant une grande expérience dans plusieurs langues. Il suit le principe POLA (principe de la moindre surprise ou "principle of least astonishment"). La syntaxe est proche de celle de C# (langage orienté objet développé Microsoft). En fait, la coloration syntaxique de C# fonctionne très bien pour Ć. Cependant, l'auteur insiste sur le fait que le langage de programmation Ć n'est pas un clone de C# ni un sous-ensemble de celui-ci. Les différences proviennent de la nécessité de disposer d'une traduction entièrement automatisée vers un code C et JavaScript efficace, en particulier.
606544
Selon l'auteur du langage, contrairement à la plupart des langages qui existent, Ć ne prétend pas être le meilleur langage de programmation universel. Au lieu de cela, il résout un problème spécifique : comment écrire du code qui peut être utilisé de manière pratique à partir de C, C++, C#, Java, JavaScript, Python, Swift et OpenCL en même temps. Par exemple, si vous avez inventé un nouveau format de compression, vous pouvez l'implémenter dans Ć et demander au traducteur automatique cito de générer le code source dans les langues mentionnées, afin que les programmeurs de ces langues puissent utiliser votre code.
Ć est conçu comme un langage orienté objet, car la plupart des langages cibles sont orientés objet et vous êtes probablement familier avec ce paradigme. L'auteur note que cela peut être considéré comme une amélioration par rapport à C, néanmoins la sortie C orientée objet est plutôt simple à utiliser pour les programmeurs C. Les dépendances de la bibliothèque d'exécution sont minimes. La sortie C est souvent une paire autonome de fichiers .c/.h contenant du code C99 portable et lisible par l'homme. De même, les sorties dans d'autres langages ne dépendent de rien d'autre que du langage standard. Il y a deux exceptions :
La gestion de la mémoire est native au langage cible. Un ramasse-miettes sera utilisé s'il est disponible dans le langage cible. Sinon (en C et C++), les objets et les tableaux sont alloués sur la pile pour des performances maximales ou sur le tas pour plus de flexibilité. Les allocations sur le tas utilisent des pointeurs intelligents C++.
Quels sont les cas d'utilisation de Ć ?
L'auteur de Ć estime que les programmeurs ont tendance à éviter l'Unicode dans les noms de fichiers. C'est pourquoi les fichiers sources Ć ont l'extension de nom de fichier .ci au lieu de .ć. En polonais, "ci" se prononce de manière identique à "ć". La description de Ć indique le contenu du fichier source doit être encodé en UTF-8 avec une BOM optionnelle. En outre, il indique également que la plupart du temps, les espaces blancs sont insignifiants dans le code source Ć. Il existe des commentaires d'une seule ligne de // jusqu'à la fin de la ligne et des commentaires multilignes encadrés par /* */. Exemple de code Ć :
public class HelloCi
{
public static string GetMessage()
{
return "Hello, world!";
}
}
Traduisez ensuite dans les langues cibles en utilisant cito sur la ligne de commande :
cito -o hello.c hello.ci
cito -o hello.cpp hello.ci
cito -o hello.cs hello.ci
cito -o HelloCi.java hello.ci # Java enforces filenames for public classes
cito -o hello.js hello.ci
cito -o hello.py hello.ci
cito -o hello.swift hello.ci
cito -o hello.ts hello.ci
cito -o hello.d.ts hello.ci # TypeScript declarations only
cito -o hello.cl hello.ci
Selon l'auteur, le code traduit est léger (pas de machine virtuelle, d'émulation, ni de dépendances), lisible par l'homme et s'adapte bien à la langue cible, y compris les conventions de dénomination et les commentaires de documentation. La description ajoute que Ć n'est pas un langage de programmation à usage général. Il est plutôt destiné à l'implémentation de bibliothèques portables et réutilisables.
Les types de données présents dans Ć
Dans Ć, on retrouve les types de données habituels, notamment :
Les tableaux
Les tableaux sont des collections de taille fixe, où chaque élément a le même type et peut être accédé en O(1) temps. Les types de tableaux Ć sont :
Les classes
Les classes sont des types composés définis par l'utilisateur.
classe Animal
{
// le contenu de la classe (membres) va ici
}
Les classes peuvent être :
Les membres d'une classe peuvent être :
Chaque membre a une visibilité :
Les méthodes
Les méthodes sont définies en spécifiant dans l'ordre :
Les objets
Une fois qu'une classe est définie, vous pouvez l'instancier, c'est-à-dire créer des objets en utilisant la classe comme modèle. Comme pour les tableaux, il existe quatre types associés à chaque classe C :
Source : Ć, Description de Ć
Et vous ?
:fleche: Quel est votre avis sur le sujet ?
:fleche: Que pensez-vous du langage de programmation Ć ?
:fleche: Selon vous, quelle est l'utilité d'un tel langage de programmation ?
Voir aussi
:fleche: C2Rust : un outil qui permet de faire la traduction et la refactorisation de votre code écrit en langage C vers le langage Rust
:fleche: Jolie, un langage de programmation orienté services. Il permet d'agréger directement les API de services dans un serveur Web
:fleche: Prisma : un ORM de nouvelle génération pour Node.js et TypeScript pour concurrencer TypeORM et Sequelize et devenir la norme de l'industrie
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.