Gaëtan Rizio
Mardi 7 février 2017
const arraySize = 1000;
const initialArray = [];
for (let i = 0 ; i < arraySize ; i++) {
initialArray.push(i);
}
function process(initialArray) {
// TODO: See following slides
}
process(initialArray);
return initialArray
.map(x => x * x)
.filter(x => x % 3 === 0);
const tempArray = [];
for (let i = 0 ; i < initialArray.length ; i++) {
const x = initialArray[i];
tempArray.push(x * x);
}
const finalArray = [];
for (let i = 0 ; i < tempArray.length ; i++) {
const x = tempArray[i];
if (x % 3 === 0) {
finalArray.push(x);
}
}
return finalArray;
const finalArray = [];
for (let i = 0 ; i < initialArray.length ; i++) {
const x = initialArray[i];
const y = x * x;
if (y % 3 === 0) {
finalArray.push(y);
}
}
return finalArray;
Les langages de programmation permettent de décrire […] les structures des données qui seront manipulées par l'appareil informatique, et […] d'indiquer comment sont effectuées les manipulations […].
Ils servent de moyens de communication par lesquels le programmeur communique avec l'ordinateur, mais aussi avec d'autres programmeurs.
Wikipédia
Un langage de programmation est un ensemble de patterns (syntaxe, paradigme) décrivant les structures de données et leurs manipulations.
Ils permettent de communiquer avec les humains et les machines.
// squaresWhenTriple => Communication: nom de l'opération réalisée
// initialArray => Structure de données: Array (si typage fort)
// return => Structure de données: Array (si typage fort)
// body => Manipulation: ensemble des sous-manipulations
function squaresWhenTriple(initialArray) {
return initialArray
// Manipulation => transformation
// Communication => transformation
.map(x => x * x)
// Manipulation => filtre
// Communication => filtre
.filter(x => x % 3 === 0);
}
return initialArray
.map(x => x * x)
.filter(x => x % 3 === 0);
const finalArray = [];
for (let i = 0 ; i < initialArray.length ; i++) {
const x = initialArray[i];
const y = x * x;
if (y % 3 === 0) {
finalArray.push(y);
}
}
return finalArray;
const finalArray = [];
for (
let i = 0 ;
i < initialArray.length ;
i++
) {
const x = initialArray[i];
const y = x * x;
if (y % 3 === 0) {
finalArray.push(y);
}
}
return finalArray;
const finalArray = [];
for (
let i = 0, c = initialArray.length ;
i < c ;
i++
) {
const x = initialArray[i];
const y = x * x;
if (y % 3 === 0) {
finalArray.push(y);
}
}
return finalArray;
Réalisé dans de nombreux transpileurs, tels que CoffeeScript, TypeScript et Babel (voir si toujours d'actualité)
*TTC: Time-To-Compile
Remarque : Le typage JS a été refusé à cause de l'augmentation du TTC (entre autres)
TTD: Time-To-Download