Translinguisme/Programmation

Un livre de Wikilivres.


Identificateurs[modifier | modifier le wikicode]

En programmation, les entités (fonctions, variables, classes, ...) sont généralement identifiés par un nom (un identificateur) de syntaxe particulière selon le langage.

Syntaxe[modifier | modifier le wikicode]

  • En général, les lettres sont acceptés (ASCII de A à Z en majuscules et de a à z en minuscules), les lettres accentuées, avec diacritiques et d'autres alphabets que latin peuvent être acceptées également (Unicode ou non, selon le langage) ;
    C, C++, C sharp, CSS, Java, Javascript, Perl, Python.
  • Les chiffres sont généralement acceptés aussi (ASCII de 0 à 9, et Unicode selon le langage), mais pas en première position pour éviter la confusion avec les nombres (comme 1E3 par exemple, pour la notation scientifique du nombre mille) ;
    C, C++, C sharp, CSS, Java, Javascript, Perl, Python.
  • Le caractère souligné est aussi accepté généralement, à moins qu'il ait un rôle particulier dans le langage ;
    C, C++, C sharp, CSS, Java, Javascript, Perl, Python.
  • Le caractère tiret peut aussi être accepté dans les langages ne l'utilisant pas comme opérateur de soustraction (pour les noms de classes en CSS par exemple) ;
    ASN.1, CSS.
  • D'autres caractères peuvent être acceptés selon le langage de programmation.

Style[modifier | modifier le wikicode]

Le style du nom varient selon l'emploi des majuscules ou des minuscules, de certains caractères et notamment de la façon de séparer les mots composant un identificateur.

CeciEstUnIdentificateur
Majuscule pour l'initiale de chaque mot.
Recommandé pour les noms de classes et les constructeurs en C++, C sharp, Java, Javascript, Python.
ceciEstUnIdentificateur
Majuscule pour l'initiale de chaque mot sauf le premier.
Recommandé pour les noms de fonctions et de méthodes en C, C++, C sharp, Java, Javascript, Perl, Python, et parfois les variables et les attributs de classes.
ceci_est_un_identificateur
Tout en minuscules avec un caractère souligné pour séparer les mots.
Recommandé pour les variables et attributs de classes en C, C++, C sharp, Java, Javascript, Perl, Python.
ceci-est-un-identificateur
Tout en minuscule avec un tiret pour séparer les mots.
Les classes en CSS, les identificateurs en notation ASN.1.
CECI_EST_UN_IDENTIFICATEUR
Tout en majuscules avec un caractère souligné pour séparer les mots.
Recommandé pour les constantes en C, C++, C sharp, Java, Javascript, Perl, Python.

Le mélange de style comme ceciEst_un_IDENTIFICATEUR n'est généralement pas recommandé.

Types et valeurs[modifier | modifier le wikicode]

Types[modifier | modifier le wikicode]

Langages Types de variable supportés
C char, double, enum, float, int, long, short, signed, struct, union, unsigned, void
Java boolean, char, byte, short, int, long, float, double, void

Boolean, Character, Byte, Short, Integer, Long, Float, Double, Void, Object, String, Enum, Date, File, Class, Method, ...

LibO Basic boolean, currency, date, double, float, integer, long, single, string
Python basestring, bool, complex, dict, exception, file, float, fonction, frozenset, int, list, long, module, none, NotImplementedType, object, set, slice, str unicode, tuple, type, xrange[1]
SQL bigint, bit varying, char, date, datetime, decimal, double precision, float, integer, numeric, real, smallint, time, varchar, year[2]
VB Byte, Boolean, Integer, Long, Single, Double, String[3]
PHP NULL, boolean, integer, float, string, array, object
HTML text, file, radio, checkbox, submit, hidden

Valeurs[modifier | modifier le wikicode]

Langage Référence/ pointeur nul Test nul Chaîne de caractère
Caractère
Entier Flottant Booléen Allocation/libération mémoire
Ada "Un exemple accentué à moins de 1."
'E'
512 0x200 -123 3.14 314.159E-2 False True allocation :
libération :
C (void*)0 "Un exemple accentué à moins de 1\x80."
'E'
512 0x200 -123 3.14 314.159E-2 0 1 allocation : ptr = malloc(size)
libération : free(ptr)
Java null isEmpty() "Un exemple accentué à moins de 1\u20AC."
'E'
512 0x200 -123 3.14 3.14D 314.159E-2 false true allocation : ref = new class(arguments...)
libération : ref = null; /* garbage collector */
JavaScript null typeof X != 'undefined' "Un exemple accentué à moins de 1\u20AC."
'E'
512 0x200 -123 3.14 314.159E-2 false true allocation : ref = new prototype_constructor_function(arguments...)
libération : ref = null; /* garbage collector */
Pascal nil 'Un exemple accentué à moins de 1.'
'E'
512 $200 -123 3.14 314.159E-2 False True allocation :
libération :
PHP null is_null()
isset()
function_exists()
False True
Python null is None "Un exemple accentué à moins de 1\u20AC."
'E'
512 0x200 -123 3.14 3.14 314.159E-2 False True
VBA null isEmpty() False True
SQL NULL MySQL : isnull(), ifnull()
MSSQL : isnull()
False True

Syntaxes de base[modifier | modifier le wikicode]

Structure du code[modifier | modifier le wikicode]

Langage Bloc d'instructions Condition simple Condition à cas multiples Boucles Sous-programmes Module Programme principal Capture d'exception
Windows PowerShell (DOS) (
...
)
if ...condition... ...commande... else ...commande... for %%var in ( liste_ou_file_pattern ) do ... call :nom ...
...
:nom
...
goto :eof
séquence des commandes du fichier
Shell Unix if
...
fi
séquence des commandes du fichier
Python indentation if ... :
...
elif ... :
...
else:
while ... :
for ... :
Déclaration :
implicite par la hiérarchie des répertoire
utilisation :
import module;
from module import names;
try:
...
except ... :
...
Ada begin
...
end;
if (...) then ...
elsif (...) then ...
...
else ...
end if;
case (...)
when ... => ...
when others => ...
end case;
while (...) loop
...
end loop;
function nom(parametre:type;...) return type is
...
begin
...
return ...;
end;

procedure nom(parametre:(in/out/in out) type;...) is
...
begin
...
end;
nom.ads (spécification) :
package nom is
...
end nom;
nom.adb (corps) :
package body nom is
...
end nom;
utilisation :
with package,...; -- déclarer
use package,...; -- utiliser l'espace de nom
procedure nom is
...
begin
...
end;
Pascal begin
...
end;
if ... then ...
else if ... then ...
...
else ...
case ... of
... : ...
else ...
end;
while ... do ...

repeat
...
until ...;


for var := start to end do ...
for var := start downto end do ...
function nom(parametre:type;...) : type;
...
begin
...
nom := ...;
end;

procedure nom(parametre:type;...);
...
begin
...
end;
unit nom;
interface
...
implementation
...
end.
utilisation :
uses unité,...;
program nom;
...
end.
C {
...
}
if (...) ...
else if (...) ...
...
else ...
switch(...)
{
case ...:...
...
default:...
}
while (...) ...
do ... while (...);
for (...;...;...) ...
type_retour nom(type param,...){...} utilisation :
#include fichier
int main(int argc, char** argv)
{ ... }
C++ {
...
}
if (...) ...
else if (...) ...
...
else ...
switch(...)
{
case ...:...
...
default:...
}
while (...) ...
do ... while (...);
for (...;...;...) ...
type_retour nom(type param,...){...} utilisation :
#include fichier
using namespace namespace;
int main(int argc, char** argv)
{ ... }
try { ... }
catch(type var) { ... }
PHP {
...
}
try { ... }
catch { ... }
Java {
...
}
if (...) ...
else if (...) ...
...
else ...
switch(...)
{
case ...:...
...
default:...
}
while (...) ...
do ... while (...);
for (...;...;...) ...
type_retour nom(type param,...){...} Déclaration (1ère ligne) :
package package;
utilisation :
import package.(classe ou *);
public static void main(String[] args)
{ ... }
try { ... }
catch(type var) { ... }
finally { ... }
JavaScript {
...
}
if (...) ...
else if (...) ...
...
else ...
switch(...)
{
case ...:...
...
default:...
}
while (...) ...
do ... while (...);
for (...;...;...) ...
function nom(param,...){...} séquence des commandes du fichier try { ... }
catch(var) { ... }
Visual Basic rien if ... then
...
elseif ... then
...
end if
while ... wend
do while ... loop
for ... next
call on error resume next
...
on error goto 0
LibO Basic rien if ... then
...
elseif ... then
...
end if
while ... wend
do while ... loop
for ... next

Commentaires et commandes de bases[modifier | modifier le wikicode]

Langage Ligne de commentaire Bloc de commentaire Écha-
ppement
Afficher Saisir Déclaration Définition Égal Différent Et Ou
Windows PowerShell (DOS) rem <# ... #> ^ echo pause, SET /P variable=[promptString], choix multiple : choice, copie : copy con variable : set, fichier : cp, copy, xcopy = (on appelle ensuite les variables avec %variable%) ==, EQU !==!, NEQ -and[4] -or
Shell Unix # : <<'END'...END \ echo sleep, read fichier : touch, cp, mv = = != && ||
Python # '''...''', """...""" \ print raw_input() rien def == != and or
Ada -- rien \ Put(), Put_Line() Get(), GetLine() variable:type := = /= and or
Pascal rien {...} ou (*...*) Chr() Write(), Writeln() Read(), Readln() var variable:type := = <> and or
C rien /*...*/ \ printf(), fprintf(), sprintf(), puts() scanf() voir le paragraphe types =, adresse de pointeurs : == == != && ||
C++ // /*...*/ \ cout<< cin>> voir le paragraphe types =, adresse de pointeurs : == == != && ||
PHP //, ou # /*...*/ \ echo, printf $_GET, $_POST Objet : new =, variable : $ == ! && ||
Java // /*...*/ \ System.out.println() BufferedReader.readline(), JTextArea,JTextField.getText(), JOptionPane.showInputDialog() voir le paragraphe types, Objet : new = ==, objet : .equals() != && ||
JavaScript // /*...*/ \ alert() prompt() var = == != && ||
HTML <!--...--> <!--...--> & rien <input> rien = rien rien rien rien
SQL --,
Oracle : rem, @[5]
/*...*/ " select print table : create table variable : :, table : update, insert = not and or
Visual Basic ', rem rien " MsgBox InputBox variable : dim
fonction : sub
=, fichier : .CopyFile
fichier, feuille : .new
= <> and or
LibO Basic ', rem rien " MsgBox InputBox variable : dim
fonction : sub
= = <> and[6] or

Syntaxe et traitement de chaînes[modifier | modifier le wikicode]

Langage Retour à la ligne Concaténation Wildcard Classer Longueur Majuscule Minuscule Rechercher dans une chaîne Rechercher remplacer Tronquer une chaîne Rogner
Windows PowerShell (DOS) \r\n commandes traitant le résultat de la précédente : | * sort /r
Shell Unix \n commandes : &&, ;, commandes traitant le résultat de la précédente : |, variables : >>, fichiers : cat * sort |sed 's/.*/\U&/'
ou |tr '[:lower:]' '[:upper:]'
|tr '[:upper:]' '[:lower:]' fichier : find, locate, programme : whereis find -exec sed -i fichier : head, tail
Python \n \r ou \r\n [7] + * sort() len() .upper() .lower() .find()
inverse : .rfind()
.replace() [] .strip()
Ada \n \r ou \r\n [7] chaines : &, commandes : ; * Gnat.Heap_Sort_G[8] variable'Size Characters. Handling. To_Upper() Characters. Handling. To_Lower() chaîne(début..fin)
C \n \r ou \r\n [7] chaines : strcat, commandes : , *, déclaration : ... qsort() sizeof -=32 +=32 strpbrk(), strchr() strncat()
PHP \n \r ou \r\n [7] . * natcasesort() strlen()
tableau : sizeof(), count()
strtoupper() strtolower() strpos() str_replace() substr() trim()
Java \n \r ou \r\n [7] + * Collections.sort() .length() .toUpperCase() .toLowerCase() .indexOf(),
regex : .find()
.replaceAll() .substring() trim()
JavaScript \n \r ou \r\n [7] + * sort() .length .toUpperCase() .toLowerCase() .indexOf(), .lastIndexOf() .replace() .substr() .trim()
HTML <br/> rien rien rien rien rien rien rien rien rien
SQL rien ||, concat like %... group by count, length upper()[9] lower()[10] like
CHARINDEX()[11]
REPLACE() substring()[12]
Visual Basic _ & * len() UCase() LCase() instr()
inverse : instrrev()
replace() left(), mid(), right()
LibO Basic _ & * len()
lignes tableau : UBound()
colonnes tableau : LBound
.SearchString left(), mid(), right()
Langage Attribut de classe Constructeur Libération Attendre Lister le répertoire courant Sortie Date du jour Ligne courante
Windows PowerShell (DOS) erase, del pause dir exit date
Shell Unix rm, rmdir sleep, wait ls exit date
Python type() self del time.sleep() os.path.normcase(f) boucle : break
fonction :
return
import time... import inspect...
Ada automatique delay secondes;
C *, déclaration : ... free() sleep
PHP gettype(), is_numeric()[13], is_int(), is_integer(), is_float(), is_real(), is_double(), is_long(), is_scalar() $this-> unset(), unserialize() sleep() __FILE__ boucle : break
fonction : return
programme : exit, die
date("d/m/Y") __LINE__
Java instanceof this StringBuffer.delete(0, sb.length())
FileInputStream.finalize()
.sleep() File[] files = new File(".").listFiles() fonction : return
programme : System.exit(0);
JavaScript getAttribute() this delete window.setTimeout() object.BuildPath(path, name) return
HTML rien rien rien rien rien
SQL rien delete WAITFOR DELAY fonction : RETURN GETDATE()
Visual Basic .save, .saveas Set MaVariable = Nothing
Erase MonTableau[14]
Kill MonFichier ou filesys.DeleteFile MonFichier
Sleep[15] dir() fonction : Exit, End
fichier : .close
goto
now()
LibO Basic .storeToURL() kill wait dir()

Conversions[modifier | modifier le wikicode]

Langage Connaitre le type En entier En décimal En caractère En chaine Déclarer un tableau Lire un tableau Trier un tableau
Python type() int() ord() str()
Tableau : " ".join(MaListe)
Tableau = range(1, 2) Tableau[1] .sort()
Ada 'Value 'Image
C StrToInt() itoa()
PHP gettype() intval(), ord() floatval() chr() strval()
Tableau : join()
Objet : json_encode()
$Tableau = array (1 => 'un', 2 => 'deux']);
ou$Tableau[1] = 'un'; $Tableau[2] = 'deux';
$Tableau[1] asort()
Selon plusieurs colonnes : array_multisort()
Java .class .getClass() Integer.parseInt() Float.parseFloat() .charAt(0) .toString() int [] Tableau = {1,2}; Tableau[1],
.arraycopy()
.sort()
JavaScript typeof() parseInt() toString() var Tableau = new Array(1, 2); Tableau[1] .sort()
SQL describe Matable Monchamp
T-SQL : SQL_VARIANT_PROPERTY(MonChamp, 'BaseType')
convert() create table Tableau select * from Tableau order by
Visual Basic Typename() CInt() CDec rien CStr() Dim Tableau(2) As Integer Tableau(1) rien

Voir aussi Coder avec Unicode/Conversion.

Manipulation de fichiers[modifier | modifier le wikicode]

Langage Ouvrir Fermer Fin de ficher Insérer Tout lire Lire une ligne Lire un caractère Rechercher Vider Supprimer Renommer
Python .open() .close() .write() .readline()
C fopen() fclose() fputs() fgets() fgetc() fseek() remove() rename()
PHP fopen() fclose() feof() fwrite(), fputs(), file_ put_ contents() file(), file_ get_ contents() fgets() fgetc() fseek() fflush()
Java FileInputStream() .close() .readLine() delete() .renameTo()
Visual Basic open .close eof() print input line input

Manipulation de fichier Excel[modifier | modifier le wikicode]

Pour construire un fichier .xls, en plus de la liaison de données de MS-Excel, il est possible de le façonner depuis une base de données, un autre fichier, ou ex-nihilo avec du code :

Langage Ouvrir Fermer Sauvegarder Écrire Paramètres des cellules
PHP PEAR[16] $this->Spreadsheet_Excel_Writer_Workbook($filename);
$workbook = new Spreadsheet_Excel_Writer();
$workbook->close(); $workbook->sendFile(); $worksheet->write(x,y,'Contenu'); $format = $workbook->addFormat(
array(
'Size' => 10,
'Align' => 'center',
'Color' => 'black',
'FgColor' => 'red'));
PHPExcel
Visual Basic[17][18] .Workbooks.Open(ActiveWorkbook.Path & "\" & "NomDuFichier") .Close .Save Sheets(1).Cells(x,y).Value = "Contenu"
ou Sheets("feuille 1").Range(x & y).Value = "Contenu"
Range(x & y).Font.Size = 10
Range(x & y).HorizontalAlignment = xlCenter
Range(x & y).Font.Color = vbBlack
ou Range(x & y).Font.Colorindex = 2
Range(x & y).Interior.ColorIndex = 4
LibO Basic .storeAsUrl(url,Array()) .Close .executeDispatch(document, ".uno:Save", "", 0, Array()) getCellByPosition(y, x).value = "Contenu"
ou getCellByName("A1").value = "Contenu"
.CharColor
.cellBackColor
.CharHeight
.CharWeight

Commandes communes aux shells Windows et Unix[modifier | modifier le wikicode]

  1. cd
  2. date
  3. echo
  4. exit
  5. fdisk
  6. ftp
  7. format
  8. help
  9. hostname
  10. mkdir
  11. more
  12. netstat
  13. nslookup
  14. ping
  15. rmdir
  16. shutdown

Comparatif des shells Windows et Unix[modifier | modifier le wikicode]

Commande DOS Unix
Afficher le chemin courant cd pwd
Liste des fichiers dir ls
Liste des fichiers cachés inclus dir /A ls -a
Supprimer des fichiers del rm
Supprimer des répertoires deltree rm -rf
Copier des fichiers copy cp
Déplacer des fichiers move mv
Créer des liens mklink ln
Modifier les attributs/droits attrib chmod
Liste des variables d'environnement set printenv
Point de montage subst mount

Regex[modifier | modifier le wikicode]

Pour plus de détails voir : Catégorie:Expressions rationnelles.
Langage Résultat du premier groupe de capture
Lua %1
Python \1
PHP $1
Java $1
C sharp $1
Visual Basic $1

Voir aussi : http://php.net/manual/fr/reference.pcre.pattern.posix.php

Faux-amis[modifier | modifier le wikicode]

Langage isnull
MySQL Renvoie un booléen
SQL Server Renvoie une valeur ou une autre selon si la condition est null

Notes et références[modifier | modifier le wikicode]

  1. Python/Les types de base sur Wikiversité Article sur Wikiversité
  2. http://msdn.microsoft.com/fr-fr/library/ms191530%28v=sql.90%29.aspx#_ole_automation
  3. Visual Basic/Les types en VB sur Wikiversité Article sur Wikiversité
  4. http://www.powershellpro.com/powershell-tutorial-introduction/powershell-tutorial-conditional-logic/
  5. http://www.querytool.com/help/1135.htm
  6. http://wiki.services.openoffice.org/wiki/FR/Documentation/BASIC_Guide/Operators
  7. 7,0 7,1 7,2 7,3 7,4 et 7,5 Le retour à la ligne dépend du système d'exploitation et pas du langage de programmation dont le compilateur ou interpréteur peut être capable d'accepter les trois séquences possibles afin de réutiliser des codes sources provenant de systèmes différents :
    • \n pour Unix, Linux
    • \r pour Mac OS
    • \r\n pour DOS, Windows
  8. http://rosettacode.org/wiki/Sort_an_integer_array#Ada
  9. http://msdn.microsoft.com/fr-fr/library/ms180055.aspx
  10. http://msdn.microsoft.com/fr-fr/library/ms174400.aspx
  11. https://msdn.microsoft.com/fr-fr/library/ms186323%28v=sql.120%29.aspx
  12. http://msdn.microsoft.com/fr-fr/library/ms187748.aspx
  13. Renvoie vrai si la variable est de type numérique, même si elle contient des lettres. Utiliser preg_match ("/[^0-9]/", $nb); dans ce cas
  14. Définit chaque ligne à Nothing
  15. Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  16. Programmation PHP/La librairie PEAR DB
  17. Fichiers en VB sur Wikiversité Article sur Wikiversité
  18. http://cisternino.free.fr/informatique/excel/vba/cours_vba_excel_fiche_07.pdf


Voir aussi[modifier | modifier le wikicode]