Un abrégé de programmation est un outils qui permet au programmeur de trouver rapidement et sans effort, les opérations avec leurs formes syntaxiques prêtes à l'emploi, nécessaires pour résoudre une étape de programmation.
Pour décrire ce que fait une opération, il suffit d'un exemple et d'un commentaire. L'exemple utilise un contexte qui donne implicitement un type (une classe) à chaque variable. Dans l'exemple s[i] = r, le contexte précise que s et r sont de type String et que i est de type Integer. Et le commentaire utilise également un contexte, qui précise implicitement le type d'opération, selon une sous-classification d'ordre sémantique. Dans l'exemple le contexte précise que c'est une opération d'extraction-modification.
Le contexte est essentiel, car sans celui-ci on serait noyer sous les détailles.
La classe constitue un niveau dichotomique difficilement contournable. On considère qu'il existe 3 classes fondamentales que sont les entiers Integer, les chaines de caractères String, et les listes Array.
L'abrégé brut donne la liste des méthodes d'instances d'une classe par ordre alphabétique. L'abrégé classé donne la liste en regroupant les méthodes selon une sous-classification d'ordre sémantique. On regroupe les métthodes ayant des mêmes affinités ou le même sens commun. Les groupes constituent des pôles d'attraction se disputant l'appartenance des méthodes. Leur construction par extension se fait par tâtonnement, et parallèllement à cela, leur construction par compréhension se fait également par tâtonnement en cherchant un compromis entre la nécessité de coïncider le mieux possible avec leur extension cible, et la nécessité d'obtenir une définition de faible complexité établie à partir de conceptes pertinants.
Voici un tableau listant les méthodes d'instance de la classe String triées par ordre alphabétique et que l'on sous-classifie dans 7 groupes :
Les 7 groupes sont :
Groupe |
Extension |
Compréhension |
Compare |
<=>, ==, ascii_only?, casecmp, empty?, end_with?, eql?, include? | Retourne {true, false, -1, 0,1} |
Compose |
*, +, <<, concat, downcase, downcase!, next, next!, reverse, reverse!, squeeze, squeeze!, succ, succ!, swapcase, swapcase!, tr, tr!, upcase, upcase! | Opération quasi-algèbrique |
Converti |
crypt, hash, hex, intern, ord, partition, rpartition, scan, split, to_c, to_f, to_i, to_s, to_str, to_sym, | Convertion de type |
Enumère |
bytes, chars, codepoints, each_byte, each_car, each_codepoint, each_line, gsub, gsub!, lines, match, upto | Retourne un Enumerator |
Extrait |
[], []=, chr, clear, delete, delete!, getbyte, insert, replace, setbyte, slice, slice!, sub, sub! | Extrait ou modifie |
Formate |
%, capitalize, capitalize!, center, chomp, chomp!, chop, chop!, dump, encode, encode!, encoding, force_encoding, inspect, ljust, lstrip, lstrip!, rjust, rstrip, rstrip!, strip, strip! | Formatage |
Recherche |
=~, bytesize, count, index, length, rindex, size | Retourne un comptage ou un indexe |