Q&A Géneralité

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

Généralité

Compilation
 C’est quoi un compilateur ?
Est un programme informatique qui traduit l’ensemble du code source d’un projet logiciel en code machine avant
son exécution.
 Quatre phases de compilation
Phase d’analyse : Permet de reconnaitre les variables, les instructions et élaborer la structure syntaxique.
Analyse lexicale
Analyse syntaxique
Analyse sémantique
Phase de synthèse : Permet de produire le programme cible.
Code source analyse -> génération du code - optimisation du code -> programme cible
PS : En parallèle avec les phases d’analyse et de synthèse il existe une phase supplémentaire :
Phase parallèle qui comporte deux étapes : Gestion de la table des symboles / gestion des erreurs
 L’optimisation de code ? est la pratique consistant à améliorer l'efficacité du code informatique d'un programme
ou d'une bibliothèque logicielle.
 Quelle est la différence entre langage interprété et langage compilé ?
Un langage compilé est converti en code machine afin que le processeur puisse l'exécuter. Un langage interprété
est un langage dans lequel les implémentations exécutent directement des instructions sans compiler au
préalable un programme en langage machine. Les programmes compilés s'exécutent plus rapidement que les
programmes interprétés.
 Quelle est la différence entre langage interprété o compilé ?
-Dans un langage interprété, le même code source pourra marcher directement sur tout ordinateur. Avec un
langage compilé, il faudra (en général) tout recompiler à chaque fois ce qui pose parfois des soucis.
-Dans un langage compilé, le programme est directement exécuté sur l'ordinateur, donc il sera en général plus
rapide que le même programme dans un langage interprété.

 Les langages interprété et langage compilé ?


Langages interprétés : Java (+ JavaScool) Python, PHP ;
Langages compilés : C, C++, Pascal et OCaml.
 La différence entre un compilateur et un interpréteur

Un automate programmable industriel (API) (en anglais programmable logic Controller, PLC) ?
Est un dispositif électronique numérique programmable destiné à la commande de processus industriels par un
traitement séquentiel.
Les automates finis non déterministes (AFN) et les automates finis déterministes (AFD)
Structure de données
 Structure de données ?
C'est l'organisation efficace d'un ensemble de données, sous la forme de tableaux, de listes, de piles etc. Cette
efficacité réside dans la quantité mémoire utilisée pour stocker les données, et le temps nécessaire pour réaliser
des opérations sur ces données.
 Types de structures de données ?
Tableau : c’est une collection du même type.
PILE : Une pile (stack) est une liste dans laquelle l'insertion ou la suppression se fait toujours à partir de la même
extrémité appelée sommet de la pile. LIFO
FILE : Type particulier de liste où les éléments sont insérés en queue et supprimés en tête. FIFO
Liste chainée : une collection d’élément de type structure (data+ pointeur sur l’élément suivant).
Arbre : sont des listes multidimensionnelles
Type des listes :
-Liste simplement chainée : est une structure dynamique récursive dont la définition comporte une référence a
elle même
-Liste circulaire ou anneau : Le dernier élément de de la liste pointe sur le premier élément de celle-ci
 Méthode LR ? vise à vérifier si une chaîne de caractères (typiquement contenue dans un fichier) possède bien la
structure d'une grammaire spécifiée à l'avance.
 Un arbre binaire ? est soit un arbre vide, soit arbre où chaque sommet a au maximum deux fils
 Rôle d’arbre binaire de recherche permet des opérations rapides pour rechercher une clé, insérer ou supprimer
une clé.
 Les parcours des arbres binaires :
-parcours en largeur : consiste à parcourir l'arbre niveau par niveau (ligne par ligne)
- parcours en profondeur : on parcourt récursivement le sous-arbre gauche puis le sous-arbre droit
 Parcours préfixé / infixe / postfixe
=> Arbre binaire équilibre
=> Arbre binaire de recherche ? Un arbre binaire de recherche est un arbre étiqueté tel que pour tout sommet x
=>arbre binaire partiellement ordonne : est un arbre étiqueté par des éléments d’un Ensemble, muni d’un ordre
total, tel que l’étiquette de tout nœud est inférieure à celles de ses fils.

 Le parcours en profondeur d'un arbre binaire correspond à un fonctionnent de


file (First in First Out)
Langage de Programmation
 Langage de haut niveau ? Plus simple et plus éloigne du fonctionnement de la machine.
 Langage de bas niveau ? Plus complexe et plus proche du fonctionnement de la machine
 Les groupes de travail faisant autorité sur les langages Open Source les plus populaires :
 HTML : W3C / WHATWG ;
 CSS : W3C ;
 JavaScript : ECMA ;
 PHP : PHP Group ;
 Python : Python Software Foundation.
 Informatique = information + automatique
 API (application programming interface) ? permet de « connecter » un logiciel ou un service à un autre logiciel ou
service afin d'échanger des données et des fonctionnalités.
Langage C
C en debut des annees 1970
 Quelle est la différence entre C et JAVA ?
C est un langage compilé de programmation procédural qui a converti le code en langage machine afin qu'il puisse
être compris par la machine ou le système. Java est un langage interprété qui est un langage orienté objet, le code
est d’abord transformé en bytecode et ce bytecode est ensuite exécuté par la JVM (Java Virtual Machine
 Quelle est la différence entre C et C++ ?
La différence clé entre C et C++ est que C est un langage de programmation procédural et ne prend pas en charge
les classes et les objets.
Alors que C++ est une combinaison du langage de programmation procédural et orienté objet.
 Variable globale ? Une variable globale est une variable déclarée avant toute définition de fonction. Elle est
connue de toutes les fonctions
 Les variables locales ? ont une durée de vie limitée à celle d’une exécution de la fonction dans laquelle elles
figurent. Plus précisément, leurs emplacements ne sont pas définis de manière permanente comme ceux des
variables globales
Langage C++
C++ 1985
 Quelle est la difference entre C++ et JAVA ?
Java est un langage de programmation orienté objet alors que C++ est à la fois un langage de programmation
procédurale et orienté objet. Java prend en charge le garbage collector automatique. Il ne supporte pas les
destructeurs comme le fait dans C++. C++ dépend de la plate-forme, mais Java est indépendant de la plate-forme.
C++ prend en charge l’instruction goto mais Java ne la prend pas en charge. C++ prend en charge l’héritage
multiple et Java ne prend pas en charge l’héritage multiple par classe. Il existe de nombreuses différences entre le
langage de programmation C++ et Java.
Le langage C++ se veut un langage C amélioré.
Il possède des fonctionnalités supplémentaires, et notamment
* la surcharge de fonctions
* le passage par référence
* l'emplacement des déclarations
* l'allocation dynamique
Enfin le passage par référence qui manque au C. Un paramètre dont le nom est suivi de & est transmis par
référence,
Les paradigmes de la programmation orientée objet
-d'encapsulation : en C++ est implémentée comme une classe qui regroupe les données(attribut) et les fonctions
(méthodes) opérant sur ces données
-d'abstraction : afficher uniquement les informations essentielles et masquer les détails.
-d'héritage : est La capacité d'une classe à dériver des propriétés et des caractéristiques d'une autre classe
-polymorphisme : L’héritage est une technique extrêmement efficace pour créer des classes plus spécialisées,
appelées sous-classes, à partir de classes plus générales déjà existantes, appelées super-classes.
Les constructeurs et le destructeur sont des méthodes particulières des classes.
 Les constructeurs permettent de définir un ou des comportements particuliers lors de l'instanciation
D’une classe. Ils permettent notamment d'initialiser correctement un nouvel objet.
 Constructeur par défaut ou constructeur sans paramètre. Il est appelé lors de l'instanciation d'un objet sans
arguments d'appel.
 Constructeur par copie. Il est appelé lors de l'instanciation d'un objet avec en argument d'appel un objet du
même type.
 Le destructeur est une méthode particulière qui est dé nie implicitement pour toutes les classes.
 Le pointeur This. Si vous êtes dans le corps d'une méthode d'une classe dénommée A, alors This est un pointeur
(constant) de A. Ce pointeur stocke l'adresse de l'objet courant.
Langage JAVA
 Qu'entend-on par JRE en Java ?
L'environnement d'exécution Java (JRE) est un logiciel dont les programmes Java ont besoin pour fonctionner
correctement. Java est un langage informatique qui alimente de nombreuses applications Web et mobiles
actuelles. Le JRE est la technologie sous-jacente qui communique entre le programme Java et le système
d'exploitation.
 Le Java Development Kit (JDK) désigne un ensemble de bibliothèques logicielles de base du langage de
programmation Java, ainsi que les outils avec lesquels le code Java peut être compilé, transformé en bytecode
destiné à la machine virtuelle Java.
 JVM (Java Virtual Machine) est une machine virtuelle qui permet à un ordinateur d'exécuter des programmes
Java ainsi que des programmes écrits dans d'autres langages qui sont également compilés en bytecode Java.
 A quoi sert Java SE ?
Java Platform, Standard Edition (Java SE) vous permet de développer et de déployer des applications Java sur des
postes de travail et des serveurs. Java offre l'interface utilisateur riche, les performances, la polyvalence, la
portabilité et la sécurité dont les applications d'aujourd'hui ont besoin.
-JRE est à l'intérieur de Java SE et est le " exécution du programme " pour Java sur votre ordinateur.
-Java SE contient JRE, Java Virtual Machine, bibliothèques et classes de base de plate-forme.
 Java Standard Edition (J2SE / Java SE) : environnement d'exécution et ensemble complet
D’API pour des applications de type desktop. Cette plate-forme sert de base en tout où
Partie aux autres plateformes
 Java Enterprise Edition (J2EE / Java EE) : environnement d'exécution reposant
Intégralement sur Java SE pour le développement d'applications d'entreprises
 Java Micro Edition (J2ME / Java ME) : environnement d'exécution et API pour le
Développement d'applications sur appareils mobiles et embarqués dont les capacités ne
Ne permettent pas la mise en œuvre de Java SE
 Caractéristique en java : java interpréter /portable/ orienter objet/ simple (pas de pointeur, pas de surcharge des
opérateurs) / fortement typée/ assure la gestion de mémoire (Garbage collector) / java est sur /économe/
multitâche.
 La notion de classe et Objet
- Un objet a :
• une adresse en mémoire (identifie l’objet)
• un comportement (ou interface)
• un état interne
- Le comportement est donné par des fonctions ou procédures, appelées méthodes
- L’état interne est donné par des valeurs de variables d’instances
 Le transtypage (cast): converting a smaller type to a larger type size(byte-> short->char-> int-> long->float-
>double)
 garbage collector est le fait de récupération automatiquement de la mémoire inutilisée en java
 La surcharge vs redefinition : La surcharge survient lorsque l'on a deux méthodes du même nom mais qui ne
prennent pas les mêmes paramètres.
La redéfinition signifie avoir deux méthodes avec le même nom et les mêmes paramètres, l'une des méthodes est
dans la classe mère et l'autre dans la classe fille.
 Les packages en Java : Java permet de regrouper les classes en ensembles appelés packages afin de faciliter la
modularité.
Si deux paquetages contiennent le même nom de classe il y a problème !
 Les collections des données ou type abstraite de données en Java ?
On appelle collections un ensemble de classes et d’interfaces fournies par l’API standard et disponibles pour la
plupart dans le package java.util. Parmi ces collections, on trouve les listes (lists), les ensembles (sets) et les tableaux
associatifs (maps) et les (queue). Elles forment ce que l’on appelle le Java Collections Framework.
 heritage
Une classe Java dérive toujours d’une autre classe, Object quand rien n’est spécifié. Pour spécifier de quelle classe
hérite une classe on utilise le mot-clé extends
 Héritage : Interface
Java n’autorise que l’héritage simple. Une classe ne peut avoir qu’une seule superclasse. Une Certaine forme
d’héritage multiple est obtenue grâce à la notion d’interface. Une interface définit uniquement des constantes et
des prototypes de méthodes.
 La différence entre classe abstraite et interface ?
Une interface peut hériter un nombre illimité d’interfaces à la fois, Une classe abstraite ne peut hériter qu’une
classe ou une classe abstraite à la fois.
Les interfaces ne peuvent être héritées que par des interfaces. Les classes doivent les implémentées au lieu d’être
héritées, Une classe abstraite peut hériter une autre classe concrète ou abstraite
 Pourquoi utiliser un mécanisme d'exceptions ?
Le mécanisme d'exceptions permet de gérer les conditions exceptionnelles pendant l'exécution du programme.
Lorsqu'une exception se produit, l'exécution normale du programme est interrompue et l'exception est traitée
 Qu'est-ce que Swing en Java ?
Swing est un ensemble de composants de programme pour les programmeurs Java qui permettent de créer des
composants d'interface utilisateur graphique (GUI), tels que des boutons et des barres de défilement, qui sont
indépendants du système de fenêtrage pour un système d'exploitation spécifique. Les composants Swing sont
utilisés avec les Java Foundation Classes (JFC).
Quelle est la différence entre Throw et Throws en java ?
Le mot clé Throw dans java est utilisé pour lancer une exception de manière explicite et il est principalement
utilisé pour lancer une exception personnalisée. La clause Throws est utilisée pour déclarer une exception, ce qui
signifie qu’elle fonctionne de manière similaire au bloc try-catch.
JDBC (Java DataBase Connectivity) est une API (Application Programming Interface) qui permet d’ex´ecuter des
instructions SQL. JDBC fait partie du JDK (Java Development Kit).
PHP
PHP : 1994
PHP 8 : sortie en novembre 2020
 Qu'est-ce que le langage PHP (Hypertext Preprocessor) ?
Est un langage de programmation libre, principalement utilisé pour produire des pages Web dynamiques via un
serveur HTTP.
 PHP s’appuie généralement sur
-une BDD : généralement MySQL, SQLite avec PHP 7,
-Sur des serveurs Apache.
Le plus répandu : EasyPHP (MySQL, Appache)
 Un cookie ? Est une petite pièce d'information que les scripts peuvent stocker sur une machine cliente.
Un cookie peut être créé sur la machine d'un utilisateur à travers l’en-tête http
 Quelle est la différence entre une session et un cookie ?
Les cookies et les sessions contiennent des informations sur l'utilisateur, mais les cookies sont stockés côté client
tandis que les sessions sont stockées côté serveur.
 L'héritage PHP est-il multiple ou unique ?
PHP ne supporte pas de manière native l'héritage multiple, c'est-à-dire la possibilité pour une classe d'hériter de
plusieurs autres classes.
 Quelle version de PHP a introduit les concepts avancés de la POO ?
La programmation orientée objet (POO) en PHP a beaucoup évolué surtout à partir de la version 5 du langage.
D'ailleurs le fait de dire PHP5 fait penser à la POO. L'arrivé de PHP7 annonce une amélioration de performances et
de temps d'exécution, ce qui a pour effet de rendre le concept POO en PHP plus persistant

ORDINATEUR
 Quelle est la définition d'un ordinateur ?
Machine automatique de traitement de l'information, obéissant à des programmes formés par des suites
d'opérations arithmétiques et logiques.
 Architecture d’un ordinateur ?
Les entrées/sorties, qui permettent à l'ordinateur de communiquer avec l'extérieur ;
une mémoire qui mémorise les données à manipuler ;
 Combien de registre contient un microprocesseur 8086 ?
4 registres : CS (code segment, DS (Data segment), ES (Extra segment) et SS (stack segment)
Un processeur, qui manipule l'information et donne un résultat (unite traitement)
 Quel est le composant qui exécute les programmes ? Le processeur
 Quel est le rôle de la carte mère ? Socle d'interconnexion des composants du PC
 La composante centrale d'un système d'information
Utilisateur /Logiciel /matériel /procédure
 La conception d'un système d'information doit se centrer sur L’utilisateur
ALLOCATION MEMOIRE
 La différence entre RAM ET ROM ?
La Rom (Read Only Memory) stocke des données dans un espace plus ou moins grand, mémoire morte
la Ram (Random Access Memory) est un processus qui permet d’accéder aux informations ,mémoire vive.
 L'allocation de mémoire vive ? désigne les techniques et les algorithmes permettant de réserver la mémoire vive
à un programme informatique pour son exécution.
 Les différents types d'allocation mémoire ?
Allocation statique : se fait au moment de l'initialisation du programme.
Allocation dynamique : se fait pendant l'exécution. (malloc / free)

 Explique le concept de pointeur ?


Un pointeur est une adresse mémoire qui contient une autre adresse mémoire. Ce qui fait que pour accéder à une
donnée pointée par un pointeur (en lecture ou écriture), il faut deux accès mémoire : le premier pour lire
l'adresse elle-même, le second pour l'accès à la donnée qui y est stockée.
 Les pointeurs sont largement utilisés en C et C++ à trois fins principales ?
pour allouer de nouveaux objets sur le tas, pour passer des fonctions à d'autres fonctions. Pour itérer sur des
éléments dans des tableaux ou d'autres structures de données
PROGRAMMATION

 C’est quoi un programme ?


Un programme informatique est un ensemble d'opérations destinées à être exécutées par un ordinateur.
Un programme source est un code écrit par un informaticien dans un langage de programmation.
 La différence entre programmation objet et programmation modulaire ? *****
La programmation orientée objet (POO) est compatible dans une large mesure avec le concept de programmation
modulaire.
Les .h Ces fichiers contiennent les prototypes des fonctions.
Les .c : les fichiers source. Contiennent les fonctions elles-mêmes.
 La différence entre structure et class ?
La différence majeure est que la classe offre la flexibilité de combiner des données et des méthodes et fournit la
réutilisabilité appelée héritage. Structure devrait normalement être utilisé pour regrouper des données.
 La différence entre méthode et fonction ?
Une fonction est un morceau de code qui est appelé par son nom, Une méthode est un morceau de code qui est
appelé par un nom qui est associé à un objet.
 La différence entre variable et objet ?
Les objets sont en fait des variables complexes dans le sens qu'ils peuvent contenir plusieurs variables (y compris
d'autres objets) tandis que les variables de type primitif ne contiennent qu'une seule valeur (sauf les tableaux).
ALGORITHMES
 Algorithmes ? Sont utilisés pour traiter les éléments d'un ensemble de données. Ils définissent une procédure
informatique, par exemple : tris, recherche etc.
 Un programme est dit récursif lorsqu'une entité s'appelle elle-même. Un programme est appelé itératif lorsqu'il y
a une boucle (ou répétition).
 Comment calcule-t-on généralement La complexité D’un algorithme récursif ?
On établit puis on résout une formule de récurrence
 Parmi ces algorithmes de tri, lequel est un algorithme de type 'Diviser pour régner'
Tri-fusion et tri rapide (quick sort)
 Les algorithmes des tris et leur complexité ?
Le tri par sélection est en O(N2), tri a bulle reste en O(N2), tri rapide dans le meilleur des cas en O(NlogN) ; en moyenne
en O(NlogN) ; dans le pire des cas O(N2), tri par fusion O(NlogN), tri par insertion dans le meilleur des cas O(N).
Les algorithmes des recherches et leur complexité ?
Recherche séquentielle --- O(N).
Recherche dichotomique --- O(logN).
HTML
 Html : Version initiale : 1993
 Html5.2 (21 décembre 2017)
 Un site web dynamique ? Site Possède une base de données pour stocker les contenus et constamment mise a
jour.
 Qu'est-ce que HTML ? Un langage conçu pour représenter des pages web
 En html que représente une adresse absolue ?
Donc une adresse qui inclut le chemin en commençant par le serveur
HTML5 (HyperText Markup Language 5) est la dernière révision majeure du HTML (format de données conçu pour
représenter les pages web). Cette version a été finalisée le 28 octobre 2014. HTML5 spécifie deux syntaxes d'un modèle
abstrait défini en termes de DOM : HTML5 et XHTML5.
Le langage comprend également :
 Une couche application avec de nombreuses API ;
 Un algorithme afin de pouvoir traiter les documents à la syntaxe non conforme.
Le travail a été repris par le W3C en mars 2007 après avoir été lancé par le WHATWG. Les deux organisations travaillent
en parallèle sur le même document afin de maintenir une version unique de la technologie. Le W3C clôt les ajouts de
fonctionnalités le 22 mai 2011, annonçant une finalisation de la spécification en 20141, et encourage les développeurs
Web à utiliser HTML 5 dès ce moment. Fin 2016, la version 5.1 est officiellement publiée et présente plusieurs nouveautés
qui doivent faciliter le travail des développeurs d'applications Web2.
CSS
W3.CSS a été publié en 2017. La dernière version est W3.CSS 4.15 décembre 2020.
Javascript
JavaScript : premiere version en mai 1996
derniere version ECMAScript en juin 2022
 Quelle est la différence entre undefined et null en Javascript ?
Undefined signifie qu’une variable a été déclarée mais qu’aucune valeur n’a encore été affectée. Tandis que, null
est une valeur d’affectation.
 La différence entre java et javascript ?
 Java est un langage de programmation informatique généraliste simultané, basé sur les classes, orienté objet et
spécifiquement conçu pour avoir le moins possible de dépendances de mise en œuvre. JavaScript est un langage
de programmation interprété de haut niveau qui peut être caractérisé comme dynamique, faiblement typé, basé
sur un prototype et multiparadigme. Par conséquent, la principale différence entre Java et JavaScript est évidente
d'après cette définition.

Vous aimerez peut-être aussi