Série de problèmes B

Série de problèmes B

1 .

Rosetta Code est une archive de tâches informatiques et de code source écrits dans de nombreux langages différents qui accomplissent la même tâche. Explorez la page sur la conversion des nombres en chiffres romains et étudiez le code source écrit en langage d'assemblage 8080, C (niveau intermédiaire) et JavaScript. Comparez et contrastez les aspects suivants du code :

  1. Longueur
  2. Lisibilité : est-il facile de comprendre comment le code fonctionne ?
  3. Niveau d'abstraction
  4. Structuré ou non structuré
2 .
Recherchez les architectures x86, ARM et PowerPC — plus précisément, comment chacune d'elles possède des caractéristiques et une syntaxe de langage d'assemblage différentes. Ensuite, recherchez et expliquez comment les langages de haut niveau peuvent être compilés sur différentes architectures informatiques.
3 .
Fournissez un exemple concret d'abstraction et expliquez en quoi il est similaire à l'abstraction en informatique.
4 .
Recherchez les classes abstraites Java. Après vos recherches, fournissez une utilisation détaillée des classes abstraites et expliquez pourquoi l'abstraction est utile dans le développement de logiciels.
5 .

Soient a et b des modules objet ou des bibliothèques statiques dans le répertoire courant, et soit a->b la notation indiquant que a dépend de b, dans le sens où b définit un symbole qui est référencé par a. Pour chacun des scénarios suivants, montrez la ligne de commande minimale (c'est-à-dire celle avec le moins d'arguments de fichiers objet et de bibliothèques) qui permettra à l'éditeur de liens statique de résoudre toutes les références de symboles :

  1. p.o -> libx.a -> p.o
  2. p.o -> libx.a -> liby.a and liby.a -> libx.a
  3. p.o -> libx.a -> liby.a -> libz.a and liby.a -> libx.a -> libz.a
6 .
Écrivez un programme qui utilise le calcul parallèle, puis qui comporte une section de code critique pour la sécurité qui n'autorise qu'un seul fil d'exécution, et enfin le reste du programme peut utiliser le même nombre de fils d'exécution que la première section.
7 .
Utilisez QEMU et gdb pour exécuter le code source du noyau ligne par ligne.