Computer Supported Collaborative Work ★ Distributed Algorithms ★ TCP/IP Networking (Advanced) ★ Compiler Construction ★ Médias, Culture et Société ★ Comportement Organisationnel, partie I 4
Computer Supported Collaborative Work ★ Distributed Algorithms ★ TCP/IP Networking (Advanced) ★ Compiler Construction ★ Médias, Culture et Société ★ Comportement Organisationnel, partie I 5
les signatures de méthodes et paramètres de classes ◦ Standardiser et formater le code à-la-Scala ★ Réécrire les points peu clairs ◦ S’assurer d’une compréhension complète du compilateur ◦ Améliorer la qualité du code 33
prêtent le mieux ◦ Compliqué, fastidieux mais pertinent ★ Tests fonctionnels ◦ Sélection parmi une pool de programmes existants en TOOL (compatibles avec otterc) ◦ Création de cas de tests pour les extensions 34
d’opérateurs simples ★ Autoriser les expressions comme instructions ★ Autoriser les assignations comme expressions ★ Autoriser la surcharge de méthodes ★ Inférer le type des variables (dans les déclarations) 35
= 56; if (a < 42) { this.whatever(a); }; return 6; VAR ID(a) COLON INT SEMICOLON ID(a) ASSIGN INTEGERLITERAL (56) SEMICOLON IF OPAREN ID (A) LESS INTEGERLITERAL(42) CPAREN OBLOCK THIS DOT ID (whatever) OPAREN ID(a) CPAREN SEMICOLON CBLOCK SEMICOLON RETURN INTEGERLITERAL(6) SEMICOLON 37
= 56; if (a < 42) { this.whatever(a); }; return 6; VAR ID(a) COLON INT SEMICOLON ID(a) ASSIGN INTEGERLITERAL (56) SEMICOLON IF OPAREN ID (A) LESS INTEGERLITERAL(42) CPAREN OBLOCK THIS DOT ID (whatever) OPAREN ID(a) CPAREN SEMICOLON CBLOCK SEMICOLON RETURN INTEGERLITERAL(6) SEMICOLON 38
= 56 if (a < 42) { this.whatever(a) } return 6 VAR ID(a) COLON INT ID(a) ASSIGN INTEGERLITERAL(56) IF OPAREN ID(A) LESS INTEGERLITERAL(42) CPAREN OBLOCK THIS DOT ID(whatever) OPAREN ID(a) CPAREN CBLOCK RETURN INTEGERLITERAL(6) 39
», et couper au bon endroit les suites de token ◦ Complexe avec de nombreux cas possibles • Prendre en compte les \n, les ignorer sauf en cas de point virgule attendu ◦ Simple et efficace 41
b * c + d T <: TObject * TAny → TObject si TObject contient une méthode times qui prends un seul paramètre a * b → a.times(b) si a est de type Object 45