Série de problèmes A
1
.
Pour chacun des langages de programmation suivants : étudiez le langage. Le langage est-il de bas niveau, de niveau intermédiaire ou de haut niveau ? Lequel des paradigmes couverts dans cette section s'applique au langage (impératif, déclaratif, fonctionnel, structuré, procédural, orienté objet) ? Citez vos sources.
- Kotlin
- Lisp
- PASCAL
2
.
Expliquez comment les niveaux d'abstraction affectent la vitesse de développement et la vitesse d'exécution.
3
.
Expliquez comment un compilateur aide à fournir des abstractions pour les langages de haut niveau.
4
.
Écrivez un module intitulé « opérations sur les triangles » qui contient deux fonctions : l'une pour calculer l'aire d'un triangle étant donné une base et une hauteur, et l'autre pour calculer le périmètre du triangle étant donné trois côtés. Ensuite, écrivez une fonction principale qui itère trois fois, augmentant chaque variable de un, puis appelle chaque fonction.
5
.
OpenMP fournit la fonction
omp_get_thread_num() dans le fichier d'en-tête omp.h. Pour obtenir le nombre total de fils d'exécution en cours dans le bloc parallèle, vous pouvez utiliser la fonction omp_get_num_threads. Comment pouvez-vous modifier ce programme pour garantir qu'un seul fil d'exécution exécute l'instruction printf « Greetings from process » ?
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(3)
{
int id = omp_get_thread_num();
int data = id;
int total = omp_get_num_threads();
printf("Greetings from process %d out of %d with Data %d\n", id, total, data);
}
printf("parallel for ends.\n");
return 0;
}
6
.
Lisez la documentation sur les pilotes de périphérique et implémentez les différents exemples fournis.