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.
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 :
- si le code Ć utilise des expressions régulières - List, Dictionary ou SortedDictionary - la sortie C s'appuie sur les implémentations GLib de ceux-ci ;
- Math.FusedMultiplyAdd est implémenté en Python avec pyfma.
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 Ć :
| Code Ć : | Sélectionner tout |
1 2 3 4 5 6 7 8 |
public class HelloCi
{
public static string GetMessage()
{
return "Hello, world!";
}
} |
Traduisez ensuite dans les langues cibles en utilisant cito sur la ligne de commande :...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.