Article de reference

Comparaison des langages de programmation (syntaxe)

Cette comparaison des langages de programmation compare les caractéristiques de la syntaxe du langage (format) pour plus de 50 langages de programmation informatique. Expression...

Cette comparaison des langages de programmation compare les caractéristiques de la syntaxe du langage (format) pour plus de 50 langages de programmation informatique.

Expressions

Les expressions du langage de programmation peuvent être globalement classées en quatre structures syntaxiques :

notation de préfixe
notation infixe
suffixe, suffixe ou notation polonaise inversée
notation de type mathématique
  • TUTEUR (2 + 3)(45) $$ note implicit multiply operator

Déclarations

Lorsqu'un langage de programmation contient des instructions , il a généralement des conventions pour :

  • séparateurs d’instructions;
  • terminateurs d'instructions ; et
  • continuation de la ligne

Un séparateur d'instructions délimite la frontière entre deux instructions distinctes. Un terminateur d'instructions définit la fin d'une instruction individuelle. Les langages qui interprètent la fin de ligne comme la fin d'une instruction sont appelés langages « orientés ligne ».

La « continuation de ligne » est une convention dans les langages orientés ligne où le caractère de nouvelle ligne peut potentiellement être interprété à tort comme un terminateur d'instruction. Dans ces langages, il permet à une seule instruction de s'étendre sur plusieurs lignes.

Continuation de la ligne

La continuation de ligne est généralement effectuée dans le cadre de l'analyse lexicale : une nouvelle ligne entraîne normalement l'ajout d'un jeton au flux de jetons, à moins qu'une continuation de ligne ne soit détectée.

Espaces blancs – Langues qui n’ont pas besoin de continuations
  • Ada – Les lignes se terminent par un point-virgule
  • C# – Les lignes se terminent par un point-virgule
  • JavaScript – Les lignes se terminent par un point-virgule (ce qui peut être déduit)
  • Lua
  • OCaml
Esperluette comme dernier caractère de la ligne
Barre oblique inverse comme dernier caractère de la ligne
Apostrophe inversée comme dernier caractère de la ligne
Trait d'union comme dernier caractère de la ligne
Souligner comme dernier caractère de la ligne
Ellipse (en tant que trois points – pas un caractère spécial)
  • MATLAB : Le jeton d'ellipse ne doit pas nécessairement être le dernier caractère de la ligne, mais tout ce qui le suit sera ignoré. (En substance, il commence un commentaire qui s'étend jusqu'au premier caractère de nouvelle ligne suivant (c'est-à-dire y compris). Comparez cela avec un commentaire en ligne, qui s'étend jusqu'à la première nouvelle ligne suivante.)
Délimiteur de virgule comme dernier caractère de la ligne
  • Ruby (le commentaire peut suivre le délimiteur)
Délimiteur de crochet gauche comme dernier caractère de la ligne
Opérateur comme dernier objet de la ligne
  • Ruby (le commentaire peut suivre l'opérateur)
Opérateur comme premier caractère de la ligne continue
  • AutoHotkey : tous les opérateurs d'expression sauf ++ et --, et une virgule ou un point
Barre oblique inverse comme premier caractère de la ligne continue
Une certaine forme de commentaire en ligne sert de continuation de ligne
Position du personnage
  • Fortran 77 : Une ligne sans commentaire est une continuation de la ligne sans commentaire précédente si un caractère autre qu'un espace apparaît dans la colonne 6. Les lignes de commentaire ne peuvent pas être continuées.
  • COBOL : Les constantes de chaîne peuvent être continuées en ne terminant pas la chaîne d'origine dans une clause PICTURE par ', puis en insérant un -dans la colonne 7 (la même position que le *commentaire for est utilisée.)
  • TUTEUR : Les lignes commençant par une tabulation (après toute indentation requise par le contexte) continuent la commande précédente.
[Fin et début] en utilisant des guillemets normaux
  • C , préprocesseur C++ : la chaîne se termine normalement et continue en commençant par une citation sur la ligne suivante.

Bibliothèques

Importer une bibliothèque est un moyen de lire des routines, programmes ou packages externes, éventuellement compilés. Les importations peuvent être classées par niveau (module, package, classe, procédure,...) et par syntaxe (nom de directive, attributs,... )

Importation de fichiers
Importation de paquets
Importation de classe
Importation de procédure/fonction
  • from module import function Python :
  • import package.module : symbol;, D :
  • import package.module : altsymbolname = symbol; D :
  • import Module (function) Haskell :
  • import function from "modname";, JavaScript :
  • import {function} from "modname";, JavaScript :
  • import {function as altname} from "modname";JavaScript :
  • import package.function MATLAB :
  • import package.class.function, Échelle :
  • import package.class.{ function => alternativeName, otherFunction }Échelle :
  • useModule('symbol');Perle :
  • use function Namespace\function_name;, PHP :
  • use Namespace\function_name as function_alias_name; PHP :
  • use module::submodule::symbol;, Rouiller :
  • use module::submodule::{symbol1, symbol2};, Rouiller :
  • use module::submodule::symbol as altname; Rouiller :
Importation constante
  • use const Namespace\CONST_NAME; PHP

Les déclarations ci-dessus peuvent également être classées selon qu'elles constituent une commodité syntaxique (permettant de faire référence à des éléments par un nom plus court, mais ils peuvent toujours être référencés par un nom entièrement qualifié sans importation), ou selon qu'elles sont réellement nécessaires pour accéder au code (sans quoi il est impossible d'accéder au code, même avec des noms entièrement qualifiés).

Commodité syntaxique
  • import package.* Java
  • import package.class Java
  • open module OCaml
Code d'accès requis

Blocs

Un bloc est une notation pour un groupe de deux ou plusieurs instructions, expressions ou autres unités de code qui sont liées de manière à constituer un tout.

Accolades (ou accolades) {...}
Entre parenthèses (...)
Crochets [...]
  • Rebol , Red , Self , Smalltalk (les blocs sont des objets de première classe, également appelés fermetures)
begin...end
do...end
do...done
do...end
  • Lua , Ruby (passer des blocs comme arguments, forboucle), Seed7 (enferme les corps de boucle entre doet end)
X ... end(par exemple if... end):
  • Ruby ( if, while, until, def, class, moduleinstructions), OCaml ( for& whileboucles), MATLAB ( if& switchconditions, for& whileboucles, tryclause, package, classdef, properties, methods, events, & functionblocs), Lua ( then/ else& function)
( begin...)
(programme ...)
( do...)
Échancrure
Autres

Commentaires

Les commentaires peuvent être classés par :

  • style (en ligne/en bloc)
  • règles d'analyse (ignorées/interpolées/stockées en mémoire)
  • récursivité (emboîtable/non emboîtable)
  • utilisations ( docstrings /commentaires jetables/autre)

Commentaires en ligne

Les commentaires en ligne sont généralement ceux qui utilisent un caractère de nouvelle ligne pour indiquer la fin d'un commentaire et un délimiteur arbitraire ou une séquence de jetons pour indiquer le début d'un commentaire.

Exemples :

Bloquer les commentaires

Les commentaires en bloc sont généralement ceux qui utilisent un délimiteur pour indiquer le début d'un commentaire et un autre délimiteur pour indiquer la fin d'un commentaire. Dans ce contexte, les espaces et les caractères de nouvelle ligne ne sont pas comptés comme des délimiteurs. Dans les exemples, le symbole ~ représente le commentaire et les symboles qui l'entourent sont considérés par les interprètes/compilateurs comme des délimiteurs.

Exemples :

Variantes uniques

Fortran
  • L'indentation des lignes dans Fortran 66/77 est importante. L'instruction proprement dite se trouve dans les colonnes 7 à 72 d'une ligne. Tout caractère autre qu'un espace dans la colonne 6 indique que cette ligne est une continuation de la ligne précédente. Un ' C' dans la colonne 1 indique que cette ligne entière est un commentaire. Les colonnes 1 à 5 peuvent contenir un numéro qui sert d'étiquette. Les colonnes 73 à 80 sont ignorées et peuvent être utilisées pour les commentaires ; à l' époque des cartes perforées , ces colonnes contenaient souvent un numéro de séquence afin que le jeu de cartes puisse être trié dans le bon ordre si quelqu'un faisait tomber les cartes par accident. Fortran 90 a supprimé la nécessité de la règle d'indentation et a ajouté des commentaires en ligne, en utilisant le !caractère comme délimiteur de commentaire.
COBOL
  • Dans le code au format fixe, l'indentation des lignes est importante. Les colonnes 1 à 6 et les colonnes à partir de 73 sont ignorées. Si un *ou /se trouve dans la colonne 7, cette ligne est un commentaire. Jusqu'à COBOL 2002, si un Dou dse trouvait dans la colonne 7, il définissait une « ligne de débogage » qui était ignorée à moins que le compilateur ne reçoive l'instruction de la compiler.
Cobra
  • Cobra prend en charge les commentaires en bloc avec « /#... #/», qui ressemble au « /*... */» souvent utilisé dans les langages basés sur C, mais avec deux différences. Le #caractère est réutilisé à partir du formulaire de commentaire sur une seule ligne « #... », et les commentaires en bloc peuvent être imbriqués, ce qui est pratique pour commenter de gros blocs de code.
Boucle
  • Curl prend en charge les commentaires de bloc avec des balises définies par l'utilisateur comme dans |foo# ... #foo|.
Lua
  • Comme pour les chaînes brutes, il peut y avoir n'importe quel nombre de signes égaux entre les crochets, à condition que les balises d'ouverture et de fermeture aient un nombre correspondant de signes égaux ; cela permet l'imbrication à condition que les commentaires de bloc/chaînes brutes imbriqués utilisent un nombre différent de signes égaux que leur commentaire englobant : --[[comment --[=[ nested comment ]=] ]]. Lua ignore la première nouvelle ligne (si présente) qui suit directement la balise d'ouverture.
Perl
  • Les commentaires en bloc dans Perl sont considérés comme faisant partie de la documentation et sont appelés Plain Old Documentation (POD). Techniquement, Perl n'a pas de convention pour inclure des commentaires en bloc dans le code source, mais POD est couramment utilisé comme solution de contournement.
PHP
  • PHP prend en charge les commentaires de style C/C++ standard, mais prend également en charge le style Perl.
Python
  • L'utilisation de guillemets triples pour commenter les lignes de la source ne forme pas réellement un commentaire. Le texte inclus devient une chaîne littérale, que Python ignore généralement (sauf lorsqu'il s'agit de la première instruction dans le corps d'un module, d'une classe ou d'une fonction ; voir docstring ).
Élixir
  • L'astuce ci-dessus utilisée dans Python fonctionne également dans Elixir, mais le compilateur lancera un avertissement s'il le détecte. Pour supprimer l'avertissement, il faudrait ajouter le sigil ~S(qui empêche l'interpolation de chaîne) à la chaîne entre guillemets triples, ce qui mène à la construction finale ~S""" ... """. De plus, Elixir prend en charge une forme limitée de commentaires de bloc en tant que fonctionnalité officielle du langage, mais comme dans Perl, cette construction est entièrement destinée à écrire de la documentation. Contrairement à Perl, elle ne peut pas être utilisée comme solution de contournement, étant limitée à certaines parties du code et générant des erreurs ou même supprimant des fonctions si elle est utilisée ailleurs.
Raku
  • Raku est utilisé #`(...)pour désigner les commentaires en bloc. Raku permet en fait l'utilisation de parenthèses appariées « droite » et « gauche » après #`(c'est-à-dire #`(...), #`[...], #`{...}, #`<...>et même les plus compliqués #`{{...}}sont tous des commentaires en bloc valides). Les parenthèses peuvent également être imbriquées à l'intérieur des commentaires (c'est-à-dire qu'elles #`{ a { b } c }vont jusqu'à la dernière accolade fermante).
Rubis
  • Le commentaire de bloc dans Ruby s'ouvre à =beginla ligne et se ferme à =endla ligne.
Argot
  • La région des lignes entourées par les #<tag>délimiteurs #</tag>et est ignorée par l'interpréteur. Le nom de la balise peut être n'importe quelle séquence de caractères alphanumériques pouvant être utilisée pour indiquer comment le bloc entouré doit être déchiffré. Par exemple, #<latex>il peut indiquer le début d'un bloc de documentation au format LaTeX.
Schéma et racket
  • Le prochain composant syntaxique complet (expression s) peut être commenté avec #;.
ABAP

ABAP prend en charge deux types de commentaires différents. Si le premier caractère d'une ligne, y compris l'indentation, est un astérisque ( *), la ligne entière est considérée comme un commentaire, tandis qu'un guillemet simple ( ") commence un commentaire en ligne qui agit jusqu'à la fin de la ligne. Les commentaires ABAP ne sont pas possibles entre les instructions EXEC SQLet ENDEXECparce que le SQL natif a d'autres utilisations pour ces caractères. Dans la plupart des dialectes SQL, le double tiret ( --) peut être utilisé à la place.

Langues ésotériques

Comparaison de commentaires

Il existe une grande variété de styles de syntaxe pour déclarer des commentaires dans le code source. BlockCommenten italique est utilisé ici pour indiquer le style de commentaire en bloc. InlineCommenten italique est utilisé ici pour indiquer le style de commentaire en ligne.

lt;#code>(* BlockComment *)/code>{{efn| Fortran ne prend pas en charge les commentaires de bloc traditionnels, mais certains compilateurs prennent en charge les directives de préprocesseur dans le style de C / C++ , permettant à un programmeur d'émuler des commentaires multilignes.br/>} lt;#code>(* BlockComment *)/code>{{efn| Fortran ne prend pas en charge les commentaires de bloc traditionnels, mais certains compilateurs prennent en charge les directives de préprocesseur dans le style de C / C++ , permettant à un programmeur d'émuler des commentaires multilignes.br/>}

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index