Différentes langages de programmation et leur portée. Conférence dans Yandex. Langues de programmation modernes et leur utilisation de langages de programmation

Pour résoudre des tâches informatiques, les processeurs graphiques sont de plus en plus utilisés maintenant, mais la question est toujours ouverte: comment écrire des programmes efficaces pour les configurations pertinentes?

06/15/2011 Andrei Adinets

Pour résoudre des tâches informatiques, les processeurs graphiques sont de plus en plus utilisés maintenant, mais la question est toujours ouverte: comment écrire des programmes efficaces pour les configurations pertinentes? Solution standard - un tas de Cuda ou opencl - vous permet de mettre relativement rapidement l'algorithme, mais il est difficile de créer une configuration spécifique avec leur aide. Nécessite des outils pour programmer des processeurs graphiques de haut niveau pouvant être créés, par exemple, à l'aide de langues extensibles.

Il y a trois ans, les équipements de processeur graphique (unité de traitement graphique, GPU) ont été considérés uniquement comme des cartes vidéo pour un PC, l'attitude envers eux a changé - il y avait des modèles de serveur GPU spéciaux axés sur la résolution des tâches de calcul, la performance sur les calculs de double précision augmentait. , Systemes record de performance, qui occupe des lignes supérieures dans le TOP500. Comment écrire des programmes efficaces pour de telles machines? Réponse standard - Bouquet de Cuda ou Opencl pour la programmation GPU et MPI au niveau du cluster. Ces outils sont disponibles, sont activement pris en charge par les fabricants d'équipements, de nombreux programmes ont déjà été écrits pour eux, mais il y a aussi des inconvénients.

Cuda et Opencl - extensions du langage SI, ils ne sont pas difficiles à étudier, bien qu'ils soient des outils suffisamment de niveau de bas niveau. Avec leur aide, vous pouvez relativement rapidement l'algorithme GPU, mais la version optimisée pour une application spécifique et la configuration est beaucoup plus compliquée. Toutes les optimisations seront effectuées manuellement, ce qui entraînera une augmentation de la taille du code et de la détérioration de sa lisibilité. Et bien que les programmes créés à l'aide de OPENCL soient transférés entre une large gamme d'architectures, les performances avec un tel transfert ne seront pas enregistrées. Outils recherchés pour la programmation des niveaux supérieurs de GPU.

Créer de tels outils peut être créé de différentes manières: entrez un nouveau langage de programmation; Ajouter des directives à une langue existante, comme c'est réalisé dans le modèle d'accélérateur PGI ou de CAPS HMPP; Profitez des langues extensibles. Langues extensibles- Les langages de programmation, la syntaxe et la sémantique ne sont pas fixes et peuvent être modifiés en fonction des besoins du programmeur. Par rapport aux langues extensibles traditionnelles, plusieurs avantages sont plus faciles d'ajouter de nouvelles fonctionnalités; Ils sont ouverts; L'étude des nouveaux modèles de programmation sur la base de telles langues est plus facile, car il est nécessaire d'étudier uniquement relativement petit en termes d'expansion; Avec l'aide de telles langues, il est plus facile d'effectuer une configuration fine et une optimisation des programmes.

Langues extensibles

Pour que la langue soit extensible, il est nécessaire d'y être présent:

  • le mécanisme d'expansion sans modification du compilateur est également pris en charge par tous les compilateurs, ce qui signifie notamment la présence d'une interface standard d'interaction avec des compilateurs;
  • conceptions d'expansion et de manipulation avec un code de code, telles que les macros ou la quasiquement, pour élargir la langue;
  • des moyens puissants des extensions d'écriture, par exemple, la langue extensible elle-même et l'autre langue, dont la puissance suggère que le code de poste peut faire la même chose que tout programme dans cette langue.

Il s'avère que les langues qui répondent à ces exigences sont relativement peu nombreuses: Lisp, Nemerle, Seed7, XOC et Stratego. Dans le même temps, XOC, qui est destiné à étendre la langue SI, utilise une langue zêcha séparée pour écrire des extensions, et Stratego est la langue du domaine pour créer les convertisseurs de code source. Nemerle est une langue extensible utilisant mercredi. RAPPORTER.

Toutes les mécanismes de soutien des langues expansibles pour travailler avec un programme de programmes, et surtout cette conception de la quasiciation - la spécification d'objet représentant l'arborescence du programme, en utilisant le code le plus source.

Dans la langue Nemerle, une conception est utilisée pour cela, par exemple, elle crée un arbre constitué d'une déclaration de variable I avec une valeur initiale de 0. La quasiquement est similaire à la création d'objets à chaîne avec des constantes de cordes. En figue. 1 montre un exemple de quasiquement. La conception d'interpolation vous permet de substituer les valeurs des variables dans un motif fixe à l'intérieur de la quasiciation. À Nemerle, il utilise des conceptions $ (...) pour cela si vous souhaitez substituer une liste, par exemple. Également dans les langues extensibles, il existe des conceptions pour l'analyse de l'arbre de programme. Dans la langue Nemerle, l'opérateur correspond à (...) (...) est utilisé, un analogue de l'interrupteur du langage Si, dont les branches sont utilisées par les conceptions de quasiquement. Dans ce cas, l'interpolation est traitée sous forme de nouvelles variables publicitaires, qui, en cas de comparaison réussie, recevez des valeurs des sous-arbres correspondants. Par exemple, pour la correspondance de l'opérateur correspondant (E) (| \u003d\u003e ...), si E contient un arbre, dans une variable A tombera, et dans la variable b.

Les outils de travail avec un arbre de programmes sont utilisés dans les modèles d'expansion de la langue. Dans la langue Nemerle, les macros sont des caractéristiques spéciales effectuées au stade de la compilation et renvoyant un fragment d'un arbre de programme substitué à l'emplacement de leur appel. Dans le même temps, la macro prend des fragments du programme en tant que paramètres et peut les transformer. En principe, la macro peut être causée de la même manière que la fonction habituelle; Mais l'opportunité la plus intéressante consiste à lier l'appel de la macro à une syntaxe spéciale. Cela vous permet d'entrer de nouvelles constructions de syntaxe dans la langue Nerlele et d'élargir ainsi la langue.

En figue. 2 montre un exemple de macro avec une extension syntaxique, ce qui vous permet de déclarer un cycle multidimensionnel avec des variables et le nombre d'itérations pour chaque mesure, et sur la Fig. 3 Il s'agit d'un exemple de conversion de programme qui fait cette macro. Notez que la macro qui exerce une telle extension prend moins de 30 lignes du code source et comprend dans ce cas plusieurs contrôles d'erreur. Avec une approche traditionnelle, la mise en œuvre d'une telle extension nécessiterait un nombre de code significativement plus important et nécessiterait, en outre, l'étude du dispositif de compilateur interne.

Historiquement, le mécanisme de macro de Lisp est apparu en premier, le programme dans lequel il ressemble à une liste régulière et ne nécessite pas de conceptions spéciales pour travailler avec l'arbre de programme. C'est donc dans cette langue que la programmation extensible est devenue la plus grande distribution. Les macros à Nemerle sont similaires dans Lisp. Dans le système XOC, le mécanisme d'extension est mis en œuvre par l'expansion de la grammaire et l'analyse d'attributs d'arborescence. Toute extension définit nécessairement deux attributs: le type de conception de la syntaxe et l'expression sur la langue de base dans laquelle il est converti.

Pour les langages extensibles, la mise en œuvre de nombreuses structures standard est caractérisée par des macros. Dans la langue Nemerle, tous les cycles et opérateurs conditionnels, à l'exception de la correspondance, sont implémentés via des macros et dans les macros LISPY sont des cycles standard et des déclarations de fonctions.

Comment utiliser des langues?

Pour un langage de programmation extensible, vous pouvez écrire des structures qui permettent le moyen le plus pratique de programmer des processeurs graphiques, qui a été effectué dans le cadre du projet NUDA (architecture de périphérique unifiée Nemerle), dont le but est de créer les extensions de langue Nemerle pour GPU programmation. Opencl est utilisé comme interface d'interaction avec le GPU et la langue cible pour représenter le programme.

Pour commencer, il est nécessaire de mettre en œuvre l'exécution sur le code de sous-ensemble GPU dans la langue Nemerle. Cela doit être pris en charge par les opérateurs de langue habituels, tels que les cycles et les branches, ainsi que de travailler avec des types de données simples, des structures et des tableaux. Le code de la GPU est soumis à des fonctions individuelles ou dans le noyau Nuda. Chaque noyau est marqué par une macro Nukernel, qui est généré par le code sur le code OPENCL et la méthode de la prise pour appeler le noyau du côté hôte. Avant de générer le code, la divulgation de toutes les macros est effectuée, à l'exception des cycles et des macros de branche. Si l'intérieur du noyau doit appeler une fonction, cette fonction doit être marquée par la macro Nucode, qui générera du code pour cette fonction dans OpenCL. L'appel principal est effectué à l'aide d'une macro Nucall; Outre les paramètres du noyau, il est également transmis à la configuration de la grille de flux avec laquelle elle commence.

Le plus souvent, le corps du cycle est utilisé comme noyau pour GPU, alors je voudrais donc transférer immédiatement le cycle vers le GPU. À Nerlele, cela peut être mis en œuvre - la macro correspondante de Nuda s'appelle NuWork. Selon les paramètres requis, il faut la taille du bloc de flux et sur la base du contexte actuel et de l'analyse du code corporel du cycle détermine l'ensemble de variables qui doivent être transférées sur le noyau comme paramètres. Le corps du noyau est généré à partir du corps du cycle, calculant les indices de cycle par le biais du numéro de débit global, ainsi que les conditions qui vous permettent d'exécuter correctement le cycle, même si la taille de la grille globale n'est pas divisée en taille de la taille du groupe de flux. Une macro Nucall appelle à l'emplacement du cycle, qui appelle le noyau généré.

En principe, vous pouvez autoriser l'utilisation des tableaux de langue Nemerle dans les programmes GPU, mais cela conduit à des frais généraux élevés - le tableau est nécessaire pour copier la mémoire GPU chaque fois que le noyau est appelé, puis le copier. Par conséquent, des types spéciaux de tableaux sont utilisés dans les programmes GPU avec une synchronisation paresseuse entre GPU et CPU. Cela permet, d'une part, de ne pas embrayer le texte du programme en copiant des commandes de données et sur l'autre - pour éviter les frais généraux de copier des données. Pour de telles tableaux, comme pour les tableaux ordinaires à Nerlele, la gestion de la mémoire est utilisée à l'aide de la collecte des ordures. Pour mettre en surbrillance la mémoire pour de tels tableaux, il existe une macro Nunew, qui doit être appliquée à l'opérateur d'allocation de mémoire habituelle.

En figue. 4 À gauche est un programme de tableaux conventionnels et à droite - un programme similaire, mais effectuant des calculs sur le GPU. Obtenir des programmes GPU de l'ordinaire Tout simplement - appliquez uniquement des macros aux cycles et aux opérations d'allocation de mémoire, et la quantité de code n'est pratiquement pas modifiée. Le programme écrit à l'aide de Nuda prend moins de 20 lignes de code. Un programme similaire, mais dans la langue propre, SI et Opencl prend plus de 100 lignes.

Outre les macros, faciliter les travaux avec le GPU, le système d'extension NUDA inclut également des annotations pour la conversion de cycles. Les annotations sont essentiellement des macros spéciales. Par exemple, le résumé en ligne est utilisé pour un cycle avec un nombre fixe d'itérations et effectue sa balayage complète. Dmine Abstract effectue un scan de cycle profond. "Scan profonde" signifie que la création de plusieurs copies du corps du cycle et de l'agitation est effectuée non seulement pour le cycle le plus convertible, mais également pour les cycles imbriqués, si indépendant.

Effet

Pourquoi le programmeur devrait-il avoir besoin d'apprendre une nouvelle langue et de développer de nouvelles bibliothèques de langues extensibles? La réponse principale est la productivité. Ayant un algorithme de cycles parallèles fonctionnant avec des tableaux et enregistrés dans la langue Nemerle, il suffit d'ajouter plusieurs annotations pour obtenir un programme pour le GPU. Dans le même temps, le programme sera exécuté sur n'importe quel appareil avec la prise en charge OPENCL, y compris les processeurs NVIDIA et AMD Graphics, ainsi que des processeurs X86. Pour atteindre les mêmes technologies Opencl ou Cuda, il sera nécessaire de dépenser beaucoup plus de ressources qui auront lieu non seulement à écrire le code source, mais également à déboguer l'interaction entre l'hôte et le GPU.

Une autre raison est la performance du code créé. Sur Cuda ou Opencl, la conversion des cycles sera effectuée manuellement et séparément pour chaque architecture. Il s'agit d'un processus d'erreur long et emballé et le code résultant est difficile et gênant pour accompagnement. Avec Nuda, ce travail peut être fait avec l'aide d'annotations. Par exemple, pour plusieurs cœurs, vous pouvez optimiser la convolution d'images ou de multiplication des matrices avec les annotations en ligne et dmine. Sans augmenter la taille du code source, il est possible d'atteindre une augmentation de la productivité en deux ou cinq fois. Dans le même temps, si les mêmes transformations ont été effectuées manuellement, cela entraînerait une augmentation du code, et parfois un ordre de grandeur, sans oublier le temps passé au temps de débogage et de sélection de paramètres de balayage optimaux. Par exemple, un programme annoté universel de sept rangées dans la multiplication de Nuda d'une matrice transposée sur une matrice de double précision est effectuée sur la NVIDIA TESLA C2050 seulement 40% plus tard la bonne chose au moment de la mise en œuvre (CublaS 3.2). Un programme similaire écrit à la main occuperait 70 lignes de code. Naturellement, pour des tâches standard, vous pouvez écrire manuellement le code une fois pour augmenter la productivité, mais pour des tâches spécifiques, la réduction des coûts de main-d'œuvre et de la productivité sera très utile. Enfin, l'augmentation de la productivité comprend également la création d'extensions elles-mêmes: pour les créer à l'aide de langues expansibles est plus facile que d'utiliser des outils traditionnels. L'ensemble du système nuda, malgré sa fonctionnalité, ne prend que 12 000 lignes de code, et non les tests de comptage. Ceci est relativement peu élevé, par exemple, le compilateur de langue Nemerle (Assemblée 9025) prend environ 130 000 lignes.

La langue expansion est un outil puissant et son utilisation dans des calculs parallèles est toujours dans l'état le plus initial. Il existe de nombreuses tâches intéressantes dans le développement de langages de programmation parallèles, et l'une d'entre elles peut être résolue à l'aide d'une combinaison d'extensions et de bibliothèques. Vous pouvez ajouter des blocs de code asynchrones et des cycles parallèles dans la langue, vous pouvez créer des conceptions pratiques pour la programmation de systèmes de cluster, tels que des tableaux distribués. Enfin, il est possible d'utiliser des extensions pour créer un langage de programmation parallèle à part entière, tels que la chapelle ou le X10.

Andrey Adinets([Email protégé]) - M.N.S. Nivz Moscow State University (Moscou).



Titre du rapport

Langues de programmation modernes et leur utilisation

L'auteur du projet

Structure de projet

● Schéma de classification de la langue de la programmation

● Classification des langues de programmation

● Vue d'ensemble des langages de programmation

● Ressources utiles

Schéma de classification Langues de programmation

Classification des langages de programmation

Programmation de procédure - Il y a un reflet du fond de l'architecture Nymanovsk de l'ordinateur. Le programme écrit dans la langue de procédure est une séquence de commandes qui déterminent l'algorithme de résolution de problèmes. L'idée principale de la programmation procédurale est l'utilisation de la mémoire pour le stockage de données. La commande principale est attribuée, qui est déterminée et la mémoire de l'ordinateur change. Le programme facilite la conversion de la teneur en mémoire en le modifiant de l'état source à la résultante.

Il existe des langages de programmation de procédure similaires:

La langue de Fortran a été créée au début des années 50 du XXe siècle pour la programmation des tâches scientifiques et techniques;

 COBOL - créé à la fin des années 60 du XXe siècle pour résoudre des problèmes de traitement de grandes quantités de données stockées sur divers supports de données;

 Algol (1960) est un langage de programmation avancé polyvalent. Pour la première fois, les concepts de la "structure de bloc du programme" et de "distribution de la mémoire dynamique" ont été introduits;

 Au milieu des années 60 du 20ème siècle, une langue de programmation spécialisée pour les débutants a été créée - base. Il est caractérisé par la simplicité de développement et la présence de moyens universels pour résoudre des tâches scientifiques, techniques et économiques, ainsi que des tâches, par exemple des jeux.

Toutes les langues énumérées ci-dessus étaient axées sur différentes classes de tâches, mais elles étaient d'une manière ou d'une autre ont été liées à une architecture informatique spécifique.

 En 1963-1966, une langue universelle polyvalente PL-1 a été créée. Cette langue est bien adaptée à la recherche et à la planification des processus informatiques, de la modélisation, de la résolution de tâches logiques, de développer des systèmes de support mathématiques.

 Langue Pascal (Pascal) (1968-1971GG) - Le langage de programmation procédural est le plus populaire pour PC, qui est actuellement appliqué avec succès. Le langage Pascal est basé sur une tâche commune à privée (plus simple et moins en volume). Les principes de base avec lesquels Posses de Pascal peuvent être: a) la programmation structurelle, qui repose sur l'utilisation de sous-routines et de structures de données indépendantes; b) Programmation "Top-Down" lorsque la tâche est divisée en tâches simples et résolues indépendamment. Ensuite, la solution du problème initial est complètement surmontée.

 À la procédure Les langages de programmation incluent la langue de l'enfer (1979 D), la langue porte le nom du premier programmeur des Dooms des Lavlayers du Bairon. Il présente la modularité des structures.

 SI Langue (début des années 70) concerne également les langages de programmation procédurale. Son option initiale était prévue comme langue pour la mise en œuvre du système d'exploitation UNIX au lieu de l'assembleur. L'une des caractéristiques de la langue SI est que les différences entre expressions et opérateurs sont lissées, ce qui les apporte aux langages de programmation fonctionnelle. En outre, il n'y a pas de concept de procédure dans le langage C et l'utilisation de sous-routines est basée sur le concept d'une fonction pouvant combiner les capacités de la procédure. D'une part, sur l'ensemble des structures de contrôle et des structures de données, il peut être attribué aux langues de haut niveau et, de l'autre, il dispose d'un ensemble de moyens d'accès direct aux nœuds fonctionnels informatiques, ce qui signifie qu'elle peut être utilisé comme langue de fonctionnement.

Programmation orientée objet (OOP) - Il s'agit d'une méthode de programmation, lorsque vous utilisez les principaux éléments des programmes sont des objets. Dans les langages de programmation, l'objet de l'objet est mis en œuvre en tant qu'ensemble de propriétés (structures de données caractéristiques de cet objet), méthodes de traitement (sous-routines de modification de leurs propriétés) et d'événements auxquels cet objet peut réagir et, qui sont généralement en règle générale. , pour changer les propriétés de l'objet. La combinaison de données et le traitement des procédures de traitement d'un objet est appelée encapsulation et est l'un des principes les plus importants de l'OOP.

Un autre concept fondamental est la classe. La classe est un modèle sur la base duquel un objet de programme spécifique peut être créé, il décrit des propriétés et des méthodes qui déterminent le comportement des objets de cette classe. Chaque objet spécifique ayant la structure de cette classe s'appelle une instance de classe.

Les principes les plus importants de l'OOP sont l'héritage et le polymorphisme. L'héritage implique la création de nouvelles classes sur la base de l'existant et permet à l'enfant d'avoir un descendant d'avoir (hériter) toutes les propriétés de la classe mère.

Le polymorphisme signifie que les installations nées ont des informations sur les méthodes qu'ils devraient utiliser en fonction de laquelle les chaînes sont dans lesquelles elles sont.

Un autre principe majeur de l'OOP est la modularité - Les objets renferment la définition complète de leurs caractéristiques, aucune définition de méthodes et de propriétés ne doit être située à l'extérieur, elle fait copier gratuitement et l'introduction d'un objet à d'autres.

Les langages de programmation les plus avancés sont C ++ et Java. Depuis le milieu des années 90, de nombreuses langues orientées objet sont implémentées comme des systèmes de conception visuels dans lesquels la partie d'interface du produit logiciel est créée en mode de dialogue, pratiquement aucun opérateur de logiciels d'écriture. Les systèmes de conception visuelle orientés objet incluent Visual Basic, Delphi, C ++ Builder, Visual C ++. Langue VBA (Visual Basic for Demande) - Langue d'application Microsoft Office (Excel, mot, point d'alimentation, etc.). VBA est conforme à la syntaxe principale des règles de langue et de programmation des dialectes de base, vous permet de créer des macros pour automatiser certaines opérations et l'interface utilisateur graphique, l'intégration entre différents logiciels.

Langues de programmation déclarative

Celles-ci incluent des langages de programmation fonctionnelle et logique. La programmation fonctionnelle est un moyen d'élaborer des programmes dans lesquels la seule action est un appel de fonction. La programmation fonctionnelle n'utilise pas la mémoire comme emplacement pour le stockage de données et, par conséquent, les variables intermédiaires, les opérateurs d'affectation et de cycles ne sont pas utilisés. Le concept clé dans les langues fonctionnelles est une expression. Le programme écrit dans la langue fonctionnelle est une séquence de décrivant des fonctions et des expressions. L'expression est calculée par le complexe d'informations à simple. Toutes les expressions sont enregistrées sous forme de listes. La première langue était LISP (LISP, traitement de la liste des listes) a été créée en 1959. Cette langue vous permet de traiter de grandes quantités d'informations textuelles. La programmation logique est la programmation en termes de logique. En 1973, la langue de l'intelligence artificielle Prolog (Prolog) a été créée (programmation en logique). Le programme de prologue est basé sur la séquence de faits et de règles, puis l'approbation que PRolog tente de prouver à l'aide des règles. La langue elle-même recherche une solution utilisant les méthodes de recherche et de comparaison qui y sont posées. Les programmes logiques ne sont pas distingués à grande vitesse, car le processus de leur exécution est réduit à la construction de chaînes directes et inverses de raisonnement avec une variété de méthodes de recherche.

Vue d'ensemble des langages de programmation

Assembleur

Les langages de programmation informatique sont divisés en 2 groupes principaux:

1) langues de bas niveau;

2) langues de haut niveau.

Les langages de niveau bas comprennent les langages d'assembleur. Ils ont reçu leur nom au nom du programme système de l'assembleur, qui convertit les programmes source écrits dans des langues directement sur les codes de commandes de la machine. Les pièces ici sont des opérateurs et le résultat de l'assemblage de la séquence de commandes de la machine La langue d'assembleur allie les avantages de la langue des commandes de la machine et des caractéristiques de langages de haut niveau. L'assembleur offre la possibilité d'appliquer des noms symboliques dans le programme source et élimine le programmeur du travail fastidieux (inévitable lors de la programmation dans la langue des commandes de la machine) sur la distribution de la mémoire de l'ordinateur pour les commandes, les variables et les constantes.

L'assembleur vous permet d'utiliser de manière flexible et pleinement les capacités techniques de l'ordinateur, ainsi que la langue des commandes de la machine. Le traducteur source de l'assembleur est plus facile qu'un traducteur requis pour un langage de programmation de haut niveau. À l'assembleur, vous pouvez écrire comme efficace de taille et de temps pour exécuter le programme, ainsi que le programme dans la langue des commandes de la machine. Cette dignité est absente dans les langues de haut niveau. Cette langue est souvent utilisée pour programmer des systèmes en temps réel, des processus technologiques et des équipements, assurant le fonctionnement des complexes d'information et de mesure. De tels systèmes ont généralement des exigences élevées pour le volume de la mémoire de la machine occupée. Souvent, la langue d'assembleur est complétée par le biais de la formation d'un macrocomand, chacune équivalente à un groupe complet de commandes de la machine. Une telle langue s'appelle la langue de la macroassmbler. L'utilisation de la "construction" de pavot bloque et apporte la langue de l'assembleur à la langue de haut niveau. La langue de l'assembleur dépendant de la machine, c'est-à-dire que cela reflète les caractéristiques de l'architecture d'un type particulier d'ordinateur

Pascal

Le langage de programmation Pascal a été élaboré par professeur du département de génie informatique de l'Institut fédéral suisse de la technologie Nikolas Virgin en 1968 comme alternative aux langages de programmation existants et compliqués, tels que PL / 1, Algol, Fortran. Le développement intensif de Pascal a conduit à l'apparition de sa norme en 1973 sous la forme d'un message révisé et le nombre de traducteurs de ce langage en 1979 a dépassé 80 ans. Au début des années 80, Pascal a encore plus renforcé sa position avec l'avènement de la SP -Pascal et Turbo Traducteurs -Pascal pour PEVM. À partir de ce moment-là, Pascal devient l'une des langues de programmation les plus importantes et largement utilisées. Il est essentiel que la langue dépasse longtemps la portée des intérêts professionnels académiques et étroits et est utilisé dans la plupart des universités de pays extrêmement développés non seulement en tant qu'outil utilisateur. La caractéristique la plus importante de Pascal est l'idée incarnée de la programmation structurelle. Une autre caractéristique essentielle est le concept de structure de données comme l'un des concepts fondamentaux.

Les principales raisons de la popularité de Pascal sont les suivantes:

Le langage facile vous permet de la maîtriser rapidement et de créer des programmes complexes algorithmiques.

Des outils développés pour la présentation des structures de données offrent une commodité des informations numériques et symboliques et bits

La présence de techniques spéciales pour créer des traducteurs de Pascal simplifiait leur développement et contribué à une langue généralisée

Optimiser les propriétés des traducteurs de Pascal vous permettent de créer des programmes efficaces. Cela a servi l'une des raisons d'utiliser Pascal comme langage de programmation linguistique.

Dans le langage Pascal, les idées de la programmation structurelle sont mises en œuvre, ce qui rend le programme visuel et donne de bonnes possibilités de développer et de déboguer.

Bell Labs Employé Denis Ritci a créé le langage C en 1972 pendant la collaboration avec Ken Thompson, en tant qu'outil de mise en œuvre du système d'exploitation UNIX, mais la popularité de cette langue a rapidement gagné le cadre d'un système d'exploitation particulier et des tâches de programmation de systèmes spécifiques. Actuellement, tout système instrumental et d'exploitation ne peut pas être considéré complet si sa composition n'inclut pas le compilateur de langue C. Ritchsee n'a pas inventé un SI simplement de la tête - le prototype était la langue de BI développée par Thompson. Le langage de programmation SI a été développé comme outil pour les praticiens. Conformément à cela, le but principal de son auteur était de créer une langue pratique et utile à tous égards.

Si est un système de programmeur système et vous permet de grimper profondément dans les mécanismes les plus subtils pour traiter des informations sur un ordinateur. Bien que la langue nécessite un programmeur de haute discipline, il n'est pas strict dans les revendications formelles et permet de brèves formulations.

C - Langue moderne. Il comprend ces conceptions de gestion recommandées par la théorie et la pratique de la programmation. Sa structure encourage le programmateur à utiliser la conception descendante, la programmation structurelle et les modules étape par étape.

C - Langue puissante et flexible. La majeure partie du système d'exploitation Unix, des compilateurs et des interprètes des langues de Fortran, Pascal, Lisp et Baisik sont écrites avec précision avec son aide.

C - Langue pratique. Il est suffisamment structuré de maintenir un bon style de programmation et à la fois non connecté à des restrictions serrées. En quelque sorte, la langue Si elle est la plus universelle, car Outre l'ensemble de moyens inhérents aux langages de programmation modernes de haut niveau (structurels, modularités, types de données spécifiques), il comprend un logiciel de programmation pratiquement au niveau de l'assembleur. Un grand ensemble d'opérateurs et de moyens nécessite une prudence, une précision et une bonne connaissance de la langue avec tous les avantages et inconvénients de l'OHI.

C ++ est apparu au début des années 80. Créé par Bieran Sturastrup avec le but initial de se sauver et de se sauver et de leurs amis de la programmation sur Assembleur, SI ou diverses autres langues de haut niveau.

Selon l'auteur de la langue, la différence entre l'idéologie des SI et C ++ est approximativement la suivante: le programme sur C reflète la "méthode de pensée" processeur, et C ++ est une méthode de réflexion programmeur. Répondre aux exigences de la programmation moderne, C ++ se concentre sur le développement de nouveaux types de données des concepts les plus pertinents de la zone choisie de la connaissance et des tâches de l'application. La classe est le concept clé de C ++. Une description de classe contient une description des données requises pour représenter des objets de ce type et un ensemble d'opérations pour travailler avec des objets similaires.

Contrairement aux structures traditionnelles C et Pascal, les membres de la classe sont non seulement des données, mais également des fonctions. Fonctions - Les membres de la classe ont un accès privilégié aux données dans les objets de cette classe et fournissent une interface entre ces objets et le reste du programme. Avec d'autres travaux, il n'est absolument pas nécessaire de se rappeler la structure interne de la classe et du mécanisme de fonctionnement des caractéristiques intégrées. En ce sens, la classe est similaire au mobilier électrique - peu de gens connaissent son appareil, mais tout le monde sait comment l'utiliser.

La langue C ++ est un moyen de programmation d'objet, les dernières méthodes de conception et de mise en œuvre de programmes, qui, dans la décennie actuelle, remplacera probablement la programmation procédurale traditionnelle. L'objectif principal du créateur de la langue du Dr Biern Strastard était équipé des constructions C ++, permettant d'accroître la productivité des programmeurs et de faciliter le processus de maîtrise des grands logiciels.

L'abstraction, la mise en œuvre, l'héritage et le polymorphisme sont les propriétés nécessaires avec lesquelles le langage C ++ a, de sorte qu'il ne soit pas seulement universel, ainsi que le langage C, mais est la langue d'objet. Fortran Fortran est une langue largement distribuée, en particulier chez les utilisateurs qui sont engagés dans la modélisation numérique. Ceci est expliqué par plusieurs raisons:

L'existence d'énormes fonds de programmes d'application sur la forteresse accumulés au fil des ans, ainsi que la présence d'un grand nombre de programmeurs qui utilisent efficacement cette langue;

La présence de traducteurs morthrâtanes efficaces sur tous les types d'ordinateurs et la version de diverses machines est assez normalisée et le transfert de programmes de la machine à la machine n'est généralement pas grand;

Dans l'orientation initiale de Fortran sur les applications physiques et mathématiques et techniques; En particulier, il a manifesté que pendant longtemps, il restait la seule langue avec un type de variables intégré intégré et un ensemble important de fonctions intégrées pour fonctionner avec de telles variables.

Au cours de la période passée, une nouvelle méthodologie et une nouvelle philosophie de programmation a été formée. Depuis le début des années 70, Ford a été considérablement critiqué. En 1977, une nouvelle norme de Fortran-77 a été adoptée. Il a fallu beaucoup de temps pour créer une nouvelle norme, mais il est déjà possible de supposer que son développement est terminé et que la nouvelle norme FORTRAN-90 a commencé à entrer dans la pratique des utilisateurs d'UrHran. Seulement sur IBM PC Machines Il existe plusieurs traducteurs, WATFOR, LAP-FORTRAN, etc. mais la plus grande distribution sur les machines de ce type a reçu diverses versions du traducteur Fortran-77. Le traducteur MS-ForTran 5.0 est sorti en 1990, presque entièrement conforme à la norme FORTRAN-90. La plupart des grands programmes d'applications scientifiques et techniques sont rédigés sur Fortran car il a une tolérabilité et une stabilité, ainsi que de la présence de fonctions mathématiques et trigonométriques intégrées. Une partie intégrante de tout programme d'application en Fortran est une bibliothèque graphique étendue, qui permet d'utiliser diverses données et images graphiques.

La langue a été créée principalement en 1975 - 1980 à la suite d'un grand projet entrepris par le département américain de la Défense pour développer une seule langue de programmation pour les systèmes dites intégrés (c'est-à-dire des systèmes de contrôle des complexes automatisés fonctionnant en temps réel) . Tout d'abord, les systèmes de contrôle sur site pour la gestion des objets militaires (navires, avions, réservoirs, roquettes, coquilles, etc.) étaient signifiés. Par conséquent, les décisions prises par les auteurs ne considèrent pas universelles. Ils doivent être perçus dans le contexte des caractéristiques de la zone sélectionnée. Le langage d'admaillage découle à la suite d'une concurrence internationale de projets linguistiques détenus en 1978-1979. Les participants auraient dû être satisfaits assez difficiles, conçus sous les auspices du département de la défense des États-Unis avec les exigences. Fait intéressant, toutes les langues qui sont tombées au dernier tour de ce concours étaient basées sur Pascal. À cet égard, l'enfer peut être auparavant caractérisé comme Pascal, développé, en tenant compte des cinq exigences de base énumérées ci-dessus. Dans le même temps, les auteurs sont allés principalement sur la voie de l'expansion de Pascal avec de nouveaux éléments. En conséquence, il s'est avéré une langue significativement plus complexe.

Kobol.

Cobol est une langue relativement ancienne, conçue principalement pour la recherche dans la sphère économique. La langue vous permet de travailler efficacement avec un grand nombre de données, il est saturé de diverses capacités de recherche, tri et distribution. À propos des programmes sur un Cobol basé sur l'utilisation large de l'anglais, ils disent qu'ils sont même compréhensibles pour ceux qui ne possèdent pas COBOL, car les textes de ce langage de programmation n'ont pas besoin de commentaires spéciaux. Ces programmes sont appelés auto-documentant. D'autres avantages de COBOL comprennent généralement sa structure. Des compilateurs assez puissants de cette langue sont conçus pour des ordinateurs personnels. Certains d'entre eux sont tellement efficaces que le programme débogué sur un ordinateur personnel est facile à transférer sur de grands ordinateurs.

Inscription Les minus ne doivent pas être rappelés que seuls les calculs algébriques les plus simples peuvent être programmés sur le COBOL. Pour les calculs d'ingénierie, cette langue ne convient pas. Une autre raison, qui limite dans une certaine mesure le développement de la langue, est la présence d'un comité de l'industrie spécialement créé aux États-Unis, qui produit des normes, conformément à la Commission du gouvernement. Comme cela se produit toujours dans de tels cas, les entreprises engagées dans le développement de logiciels ne se dépêchent pas de personnaliser leurs billettes aux exigences strictes de la Commission, il n'y a pas de concurrence de versions et perd éventuellement la diffusion de la langue.

PL / 1 a été développé en 1964-1965 par IBM. PL / 1 se réfère au nombre de langages universelles, c'est-à-dire qu'il vous permet de résoudre des problèmes de différentes zones: calculs numériques, traitement de texte, tâches économiques, etc. Par ses capacités, elle chevauche des langues telles que Fortran, Algol-60 ( Créé pour des calculs numériques), COBOL (pour les tâches économiques), bien que, en raison d'un certain nombre de raisons, ces langues du PL / 1 n'ont pas pu être supprimées.

PL / 1 contient toutes les conceptions de base caractéristiques des langages dits de haut niveau, ainsi que d'un certain nombre de moyens spécifiques, pratiques pour la programmation pratique. La langue ressemble à un concepteur avec un grand nombre de pièces - l'utilisateur suffit à maîtriser uniquement les parties de la langue qui lui sont pratiquement nécessaires. Ses opérateurs sont plutôt des chars, ce qui vous permet souvent d'obtenir un enregistrement du programme plus compact que dans d'autres langues. Un programmeur PL / 1 compétent disparaît toute autre langue de la même classe ou de la classe proche.

Dans le même temps, le PL / 1 comporte un certain nombre de lacunes qui entravent l'étude et l'utilisation de la langue. Les principaux sont tels. Premièrement, il existe de nombreux moyens en double difficiles à retenir, il n'est pas clair que, lors de l'application, il réduit à la fois la vitesse de diffusion et la vitesse de l'exécution du programme. Deuxièmement, les programmes ne sont pas entièrement indépendants de la machine.

Module

Nous pouvons supposer que l'histoire de la langue du module commence en 1980, lorsque Niklaus Wirth, l'une des spécialistes de la théorie de l'information exceptionnelle, connue pour la plupart des spécialistes de techniciens informatiques, principalement en tant que créateur de Pascal, a publié une description du nouveau langage de programmation appelé la module. Contrairement à Pascal, qui était prévu par la langue de la programmation d'apprentissage, le module dès le début était une langue pour les programmeurs de système professionnel, poursuivant les meilleures traditions de son prédécesseur et en les enrichissant de nouvelles idées qui répondent à de telles exigences pour les langages de programmation que Structura , modularité et capacité d'expansion. Comme beaucoup d'autres langages de programmation, le module a été soumis à l'évolution, au cours de laquelle son nom initial a été refait au nom du module-2. Simultanément avec le développement de la langue du module, de nouveaux compilateurs ont été créés pour lui. Cependant, aucun d'entre eux ne pourrait rivaliser avec la meilleure réalisation des langues Pascal et Si, par exemple, développée par Borland. Dans ce langage de module transitoire, la meilleure période a été considérée comme mise en œuvre par Logitech, qui, dans leurs caractéristiques, perdre Turbo Pascal et Turbo SI. Seulement en 1988, après l'apparition du système de vitesse maximale sur le marché américain, Module-2 a pris un lieu digne des langues procédurales destinées à la programmation système. L'inclusion de la popularité du système de vitesse maximale a contribué plusieurs facteurs: pratique et, de plus, l'environnement opérationnel est facilement modifiable à la demande des utilisateurs, le compilateur rapide et l'éditeur sélectif des connexions. Mais le plus important était le fait que les programmes créés étaient caractérisés par une plus grande vitesse et occupée peu de place en mémoire.

Beysik

BASIC - Code d'instruction symbolique tout usage du débutant - "Code symbolique universel des instructions pour débutants"). Descendant direct de Fortran et toujours le langage de programmation le plus populaire pour les ordinateurs personnels. Becisik est apparu en 1963 (appelé l'auteur serait difficile, mais le principal mérite de son apparence appartient sans aucun doute aux Américains John Kemen et Thomas Kurtu). Comme tous les avantages, la simplicité de Beysik se retourna, en particulier dans les versions antérieures des difficultés structurantes; De plus, Baisik n'a pas permis la récursivité - une technique intéressante qui vous permet de faire efficacement et dans le même temps de courts programmes.

Un puissant compilateur de baseball a été développé, qui fournit non seulement un vocabulaire riche et une vitesse élevée, mais également la possibilité d'une programmation structurelle. Selon certains programmeurs, les versions les plus intéressantes sont Gwbasic, Turbo-basique et rapide de base.

À une époque, l'apparition de Quick Basic a marqué la naissance d'une deuxième génération de systèmes de programmation dans la langue Baysik. Il a fourni la possibilité d'une programmation modulaire et procédurale, de créer des bibliothèques, de la compilation de programmes prêts à l'emploi, etc., ce qui l'a porté au niveau de telles langues de programmation classiques, telles que SI, Pascal, Fortran, etc. En outre, en raison du manque de la norme officielle de la langue Baysik, sa mise en œuvre rapide de base est devenue une norme réelle. Les leaders inconditionnels parmi les différentes versions de Baysik étaient rapides de base 4.5 et PDS 7.1 de Microsoft, qui sont apparus à la fin des années 80.

Zézayer

Le langage LISP a été proposé par J. McCarthy dans le travail en 1960 et axé sur l'élaboration de programmes de résolution des problèmes de nature non numérique. Le nom anglais de cette langue - LISP est l'abréviation de l'expression de traitement de la liste (le traitement des listes) et met l'accent sur la zone principale de son utilisation. Le concept de "liste" s'est avéré être très capacieux. Sous la forme de listes, il est pratique de représenter des expressions algébraïques, des graphiques, des éléments de groupes finis, des ensembles, des règles de sortie et de nombreux autres objets complexes. Les listes sont la forme la plus flexible de la présentation d'informations dans la mémoire des ordinateurs. Il n'est pas surprenant qu'il existe une langue pratique spécifiquement conçue pour gérer des listes, rapidement gagné de la popularité.

Après l'apparition de LISP, divers auteurs ont proposé un certain nombre de problèmes d'autres langues algorithmiques dans le domaine de l'intelligence artificielle, parmi lesquels le joueur peut être noté, snobol, reflux, prologue. Cependant, cela n'a pas empêché Lisp de rester la langue la plus populaire pour résoudre ces tâches. Au cours de la quasi-on de quarante ans d'histoire de son existence, un certain nombre de dialectes de cette langue sont apparus: Common Lisp, Mac Lisp, Inter Lisp, Lisp standard, etc. Les différences entre eux ne portent pas de nature fondamentale et sont principalement réduites à un légèrement Différents ensemble de fonctions intégrées et une différence sous forme de programmes d'enregistrement. Par conséquent, un programmeur qui a appris à travailler sur l'un d'entre eux peut facilement maîtriser et tout autre. Le grand avantage de LISP est son orientation fonctionnelle, c'est-à-dire que la programmation est effectuée à l'aide de fonctions. De plus, la fonction est comprise en règle générale, comparant les éléments d'une classe, les éléments correspondants d'une autre classe. Le processus de comparaison elle-même n'affecte pas le fonctionnement du programme, seul son résultat est important - la valeur de la fonction. Cela vous permet d'écrire et de déboguer facilement des vastes complexes logiciels. La clarté des programmes, une distinction claire entre leurs fonctions, l'absence d'effets secondaires Caerz lorsqu'ils sont remplies, sont des exigences obligatoires pour la programmation de telles tâches complexes logiquement complexes, qui sont des tâches d'intelligence artificielle. La discipline de programmation devient particulièrement importante lorsque la personne ne travaille pas sur le programme, mais tout un groupe de programmeurs.

Le langage de programmation LISP est principalement destiné à traiter les informations symboliques. Par conséquent, il est naturel que dans le monde de Lisp, le nombre est joué de loin d'un rôle majeur. Les principaux types de données dans le LISPY sont appelés "atom" et "paire de points".

Prologue

Le langage de programmation logique est destiné à la présentation et à l'utilisation des connaissances sur une certaine zone. Les programmes de cette langue consistent en un certain ensemble de relations et sa mise en œuvre est réduite à la conclusion d'une nouvelle relation basée sur les spécifiées. Le prologue implémente une approche déclarative, dans laquelle il suffit de décrire la tâche à l'aide de règles et de déclarations concernant les objets spécifiés. Si cette description est assez précise, l'ordinateur peut alors trouver de manière indépendante la solution souhaitée.

Objet d'objet

Objet PAL est un langage de programmation puissant. L'objet PAL est orienté objet, géré par des événements, un langage de programmation visuel. Au niveau initial de la fonctionnalité d'objet PAL, vous pouvez effectuer des opérations de données, créer des menus spéciaux, ainsi que la gestion de la session de saisie de données. Événements dans Object Pal générer des commandes qui simulent l'effet d'utilisation de paradoxe en mode interactif. Il est possible d'automatiser des tâches fréquemment effectuées, ainsi que sur les tableaux, formulaires et rapports d'action qui n'étaient pas disponibles dans des travaux interactifs. L'objet PAL fournit également tous les moyens de langage de programmation complet dans l'environnement Windows. Vous pouvez utiliser l'objet PAL pour créer des systèmes terminés qui implémentent un système de menu spécial, système d'aide, ainsi que toutes sortes de contrôles de données. Dans Object Pal, vous pouvez enregistrer vos développements dans une bibliothèque de composants dynamiquement, l'accès à celui qui aura plusieurs formulaires. De plus, vous pouvez établir une communication avec d'autres bibliothèques dynamiques contenant le programme écrit dans des langues telles que SI, C ++ ou Pascal.

L'objet PAL peut être utilisé comme outil de création de programmes hors ligne. Vous pouvez écrire l'application Windows terminée et l'exécuter sous Paradox.

Object PAL prend en charge le mécanisme d'échange de données dynamique comme le client et le serveur. De plus, Object PAL prend en charge le mécanisme de travail avec des documents composites en tant que client. En plus de ce qui a été dit, il est possible d'inclure du multimédia dans votre application, en fournissant l'application effectuée par des effets de son et d'animation.

Créé par BBSE, la mise en œuvre de la langue DBEE est une orientation efficace de l'objet hybride et des méthodes de programmation traditionnelles. Il a permis de créer des systèmes utilisant des conceptions d'objet et d'utiliser des réceptions classiques pour le traitement des enregistrements. La grande réussite de la Société B Bohr était que les techniques de programmation d'objet et de procédure ont été très bien combinées. La première version pour Windows a donné à l'utilisateur l'outil objet le plus puissant du marché des logiciels de base de données. Il vous permet de créer de nouvelles classes d'objets possédant les propriétés de l'héritage, de l'encapsulation et du polymorphisme. Il vous permet également de programmer ces objets à l'aide de commandes dbase traditionnelles, idéalement adaptées à la gestion de bases de données de table simples. Tout cela donne un avantage indiscutable - sans trop de difficulté à transition vers des techniques de programmation d'objet, la transition est si complexe, par exemple, comme dans le SGBD paradoxe.

Le langage Java est originaire du projet de création de logiciels avancés (logiciels) pour divers appareils ménagers. La mise en œuvre du projet a été lancée en C ++, mais un certain nombre de problèmes sont nulés, le meilleur moyen de lutter contre l'outil lui-même - langage de programmation. Il est devenu évident qu'un langage de programmation indépendant de la plate-forme est nécessaire, ce qui vous permet de créer des programmes qui n'avaient pas à compiler séparément pour chaque architecture et que l'on pourrait utiliser sur divers processeurs sous divers systèmes d'exploitation. La langue Java était tenue de créer des produits interactifs pour Internet. En fait, la plupart des solutions architecturales adoptées lors de la création de Java ont été dictées par le désir de fournir une syntaxe similaire à C et C ++. Java utilise des accords presque identiques pour déclarer des variables, transmettre des paramètres, des opérateurs et pour contrôler le flux d'exécution du code. Java ajoute toutes les bonnes fonctionnalités C ++.

Trois éléments clés unis à la technologie Java

Java prévoit une large utilisation d'applets (applets) - petites applications actives actives, fiables, dynamiques et non plate-tomfoliques intégrées aux pages Web. Les applets Java peuvent être configurés et distribués aux consommateurs de la même facilité que tous les documents HTML.

Java publie le pouvoir du développement d'applications orienté objet, combinant une syntaxe simple et familière avec un environnement de développement fiable et pratique. Cela permet à un large cercle de programmeurs de créer rapidement de nouveaux programmes et de nouveaux applets.

Java fournit un programmeur un ensemble riche de classes d'objets pour une abstraction claire de nombreuses fonctions système utilisées lors de l'utilisation de Windows, de réseau et d'E / S. Le trait clé de ces classes est qu'ils fournissent la création d'une plate-forme d'abstraction indépendante pour une large gamme d'interfaces système.

Langages de programmation pour les réseaux informatiques

Les langages de programmation pour les réseaux informatiques sont interprétés. Les interprètes pour eux sont distribués gratuitement et les programmes eux-mêmes sont dans les textes source. Ces langues sont appelées script - langues.

Perl est une langue interprétée créée par le programmateur mural à bordure pour gérer de gros textes et fichiers et déchiffrés comme une extraction pratique et une langue de rapport (langue pour l'extraction pratique des données et les rapports). En utilisant Perl, par exemple, vous pouvez créer un script qui ouvre un ou plusieurs fichiers, traite des informations et enregistre les résultats.

Perl est une langue adaptée pour traiter les fichiers texte arbitraires, extraire les informations nécessaires de leur part et émettre des messages. Perl est également pratique pour écrire divers programmes système. Cette langue est facile à utiliser, efficace, mais il est difficile de dire à ce sujet qu'il est élégant et compact. La syntaxe des expressions Perl est proche de la syntaxe C. La récursion peut être une profondeur arbitraire. Bien que Perl soit adapté pour analyser les fichiers texte, il peut également traiter des données binaires. Perl vous permet d'utiliser des expressions régulières, de créer des objets, d'insérer un morceau de code dans un Perl au logiciel Si ou C ++, et permet également d'accéder aux bases de données, y compris Oracle.

Avec l'invention, World Wide Web, Perl s'est avéré être un excellent outil permettant d'interagir avec des serveurs Web via une interface de passerelle commune (CGI) - une interface d'interaction commune. Les commandes Perl peuvent facilement obtenir des données d'un formulaire HTML ou d'une autre source et d'effectuer toute action avec elles.

Langue Php. (1995-1997) a accès à l'accès à la base de données et est utilisé par les créateurs de sites dynamiques du monde entier.

Langue TCL / TK. (La fin des années 1980) se compose de commandes puissantes conçues pour fonctionner avec des objets abstraits sans type et vous permet de créer des programmes avec une interface graphique.

Langue Vrml (1994) Créé pour organiser des interfaces tridimensionnelles virtuelles sur Internet.

Langue XML. Depuis 1996, il travaille sur la création d'une langue universelle de la structure du document. Il peut devenir un substitut pour HTML.

Production

Ressources utiles

Avis Aizili

Où est le rapport?

Avis Ranitka.

Re: Où est le rapport?
Tout sera: -D

Commentaires Shamagulova Elite

Avis Mishina Alexander

Super rapport. J'ai beaucoup appris sur les langages de programmation.

Avis sur Morozova Alexander

Bien sûr, j'aimerais voir un rapport ou au moins une présentation sous quelque forme que ce soit.

Cet article est sur l'expansion et son importance pour les systèmes informatiques. Il semblerait donc qu'un tel spécial puisse être dans l'expansion d'un fichier logiciel? Mais néanmoins, nous espérons que les lecteurs seront en mesure d'obtenir des informations importantes et intéressantes pour elles-mêmes. La capacité de gérer les extensions servira un bon service, qui sera écrit ci-dessous.

Quelle extension a c plus plus?

Ce langage de programmation a sa propre désignation de fichier. La désignation du CPP est une extension spéciale utilisée pour les fichiers avec code C ++. Ils ne sont contenus pas encore prêts à utiliser (non compilés) du code pouvant être modifiés et de faire des modifications sans coûts et échecs importants dans le programme. Avec cette extension, vous pouvez savoir quel fichier contient du texte sur "Si" (langage de programmation qui est maintenant très populaire).

L'expansion et son importance dans la programmation

Pourquoi est-il nécessaire d'étendre le nom du fichier utilisé par l'ordinateur? Le fait est que l'ordinateur peut gérer de nombreux types de fichiers différents, dans le cadre du système d'exploitation installé et en utilisant des logiciels supplémentaires. Un exemple de ce logiciel peut être installé dans des navigateurs ou des interprètes de différentes langages de programmation pouvant gérer les programmes en cours d'exécution. Ici, pour reconnaître la manière dont l'interprète doit être utilisé, quel code de machine est appliqué pour lire le fichier et les extensions sont nécessaires. Reconnaît le type de fichier, ces informations seront fournies par les détails disponibles. Ainsi, l'extension du CPP est un fichier contenant le document C ++. Après la reconnaissance, l'interprète sera en mesure de l'ouvrir et l'utilisateur sera en mesure de travailler avec le document.

Quel est l'extension de nom de fichier?

Mais parlons des extensions de noms de fichiers du point de vue des sciences informatiques. Avec cela, il a déjà été déterminé - il est nécessaire d'identifier le format ou le type de fichier. Débranchez l'extension pour le compte du fichier à l'aide d'un point. Jusqu'au 95ème, Windows a une limite sur le nombre de caractères d'expansion: ils ne pouvaient pas être plus de trois. Dans les systèmes modernes, il n'y a pas de restriction de ce type. Encore plus, dans les systèmes de fichiers modernes, il peut exister des fichiers comportant plusieurs types d'expansion. Tous suivent le point. Pour telle que le CPP, cela est vrai, ne s'applique pas.

Un tel cadeau de développeurs aime souvent des fraudeurs. Vos fichiers malveillants qu'ils suggèrent sur les ordinateurs des utilisateurs, les attaquants sont souvent masqués pour d'autres programmes, masquent l'extension principale du fichier (dans les virus et divers Troie qu'il diffère des programmes ordinaires). Il est peut-être même que tous les fichiers réels se cachent ou sont enlevés, et ils correspondaient complètement différents. Et il s'avère que le RPC n'est pas un CPP du tout, mais un virus informatique. Une bonne protection contre ce type de fraudeurs est une commande d'affichage de tous types d'extensions. Vous pouvez activer cette fonctionnalité dans le "Panneau de configuration", il suffit de ne trouver que l'élément nécessaire. Ensuite, vous pouvez être calme pour vos fichiers C plus plus et convaincu que vous n'exécuterez pas à la place d'un programme nocif. Bien qu'il soit toujours nécessaire de regarder l'expansion des fichiers exécutables.

Précision des informations spécifiées dans l'expansion

Parfois, l'extension indique de manière inexacte le type de fichier et ne résout pas tous les problèmes possibles pouvant survenir dans le processus d'utilisation de divers programmes. Donc, l'extension. TXT, familier à beaucoup, ne donne pas d'informations à l'ordinateur sur le fichier de codage. Par conséquent, lorsque vous ouvrez des fichiers texte, vous pouvez voir les feuilles de caractères incompréhensibles. Particulièrement triste de voir un tel état de document s'il a été utilisé pour écrire un code de programme. Dans de tels cas, le codage de fichier doit être modifié jusqu'à ce que l'ordinateur puisse fournir un texte adéquat. Il est possible sur la base de caractères incorrects d'essayer de calculer le codage nécessaire, mais vous devez savoir quel codage à l'égard desquels cela conduit à. Pour les fichiers vordiques, la même extension est également utilisée, ce qui ne précise pas ce qui est clair avec quel fichier une personne traite: avec le type habituel ou formaté. En outre, l'extension n'indique pas quelle version est utilisée, ce qui est bien manifesté lors de la tentative d'ouverture des versions des premiers documents dans des environnements de traitement ultérieurs, comme dans le cas de Microsoft Office.

Autres méthodes et opportunités de spécifier le format

Il existe d'autres fonctionnalités pour spécifier pour le système de fichiers. Mais ils ne sont pas courants, et vous n'avez probablement jamais entendu parler de:

  • Enregistrement d'informations sur le format de fichier dans le système d'exploitation lui-même. Les inconvénients se posent si vous souhaitez passer à un autre ordinateur et travailler avec le même fichier.
  • L'utilisation de la méthode dite "numéros magiques". Ceci est quand une certaine séquence d'octets est cryptée dans le fichier lui-même, ce qui indique toutes les informations nécessaires à l'opération de fichier. Il a un certain potentiel, mais les fabricants de logiciels sont nécessaires.
  • Pour certains systèmes UNIX, une fonction a été développée qui laisse des désignations spéciales au début d'un fichier destiné à l'interprète.

Avant de vouloir étudier un langage de programmation, vous devez en savoir un peu sur leur histoire et où ils s'appliquent.

Je vous présente une brève vue d'ensemble de 25 langages de programmation bien connus. À partir du plus célèbre à moins populaire. L'article est effectué pour les nouveaux arrivants dans le domaine de la programmation. Vous pouvez lire sur chaque langue et choisir celui que vous aimerez plus à explorer.

Avant de commencer à apprendre des langages de programmation, je vous recommande d'explorer le cours du logiciel.

1. JavaScript.

Langage de programmation pittoresque axé sur les prototypes. JavaScript a été créé à l'origine afin de créer les pages Web "vivant". Dans le navigateur, ils sont connectés directement à HTML et, dès que la page est chargée - immédiatement exécutée.

Lorsque la langue JavaScript a été créée, il avait à l'origine un autre nom: "Livrescript". Mais ensuite, la langue Java était très populaire et les spécialistes du marketing ont décidé qu'un nom similaire rendrait une nouvelle langue plus populaire.

Il était prévu que JavaScript serait une sorte de java "frère cadet". Cependant, l'histoire a ordonné à sa manière, JavaScript a fortement augmenté, et c'est maintenant une langue totalement indépendante, avec sa spécification et Java n'a rien à voir.

2. Java.


Langage de programmation orienté vers l'objet strictement dactylographié. Les applications Java sont généralement diffusées sur un code d'octet spécial afin de pouvoir travailler sur n'importe quelle architecture informatique à l'aide d'une machine Java virtuelle.

L'avantage de cette méthode d'exécution des programmes est l'indépendance totale du code octet du système d'exploitation et de l'équipement, ce qui vous permet d'effectuer des applications Java sur n'importe quel appareil pour lequel il existe une machine virtuelle correspondante. Une autre caractéristique importante de la technologie Java est un système de sécurité flexible, dans lequel l'exécution du programme est entièrement surveillée par une machine virtuelle.

Initialement, la langue s'appelait Oak («Oak») a été développée par James Gosling pour la programmation des appareils électroniques ménagers. Par la suite, il a été renommé Java et a commencé à être utilisé pour écrire des applications client et des logiciels de serveur.

3. PHP.


Il s'agit d'une langue courante interprétée avec une source open source (langage de script). PHP a été créé spécifiquement pour le développement Web et le code sur celui-ci peut être mis en œuvre directement dans le code HTML. La syntaxe de la langue provient de C, Java et Perl, et est facile à explorer.

L'objectif principal de PHP est de fournir aux développeurs Web la possibilité de créer rapidement des pages Web générées de manière dynamique, cependant, le domaine de l'application PHP n'est pas limité à cela.

4. Python

Le langage de programmation à usage général de haut niveau s'est concentré sur l'amélioration de la productivité du développeur, la lisibilité du code et le développement d'applications Web. La syntaxe du noyau Python est minimalisée. Le code de Python est organisé en fonctions et classes pouvant être combinées en modules.

5. C #


Langage de programmation orienté objet. Développé en 1998-2001 par un groupe d'ingénieurs sous la direction d'Anders Halesberg dans Microsoft comme langue pour développer des applications pour la plate-forme Microsoft .NET Framework. C # fait référence à la famille des langues avec une syntaxe C-similaire, dont sa syntaxe est la plus proche de C ++ et Java.

La langue a la dactylographie statique, prend en charge le polymorphisme, les opérateurs de surcharge, les délégués, les attributs, les événements, les propriétés, les types généralisés et les méthodes, les itérateurs, les fonctions anonymes avec fermetures de fermeture, Linq, exceptions, commentaires au format XML.

6. C ++.


Compilé, langage de programmation générale typée de manière statique. C'est l'une des langues les plus courantes du monde. Google Chrome, Mozilla Firefox, Winamp et Adobe ont été conçus à l'aide de C ++. De plus, certains systèmes de jeux et d'exploitation modernes ont été développés sur C ++ en raison de la transformation rapide et de la compilation.

7. Ruby


Langage de programmation simple et lisible axé sur le développement d'applications Web. Conçu par Yukihiro Matsumto en 1995. La langue est indépendante du système d'exploitation pour mettre en œuvre la multithreading, la dactylographie stricte dactylographie, le collecteur de déchets.

L'objectif principal Ruby est la création de programmes simples et compréhensibles, où la vitesse du programme n'est pas importante, mais un petit temps de développement, plus clair et simplicité de la syntaxe. La langue suit le principe «surprise la plus basse»: le programme doit se comporter au fur et à mesure que le programmeur s'attend.

8. CSS.


Feuilles de style en cascade (tables de style en cascade) Description formelle Langue de l'apparition d'un document écrit à l'aide d'une langue de balisage.
Il est principalement utilisé comme outil de description, conception de l'apparition de pages Web écrits à l'aide de langages de balisage HTML et XHTML, mais peut également être appliqué à des documents XML.

9. C.


Compilation du langage de programmation générale typée de manière statique. Le langage C a été conçu par Dennis Ritchch en 1972 à Bell Labs. C'est le prédécesseur de telles langues de programmation tels que C ++, Java, C #, JavaScript et Perl. Pour cette raison, l'étude de cette langue conduit à la compréhension et à d'autres langues. La langue C est utilisée pour développer des applications de bas niveau, car elle est considérée comme la plus proche du matériel.

10. Objectif-c


Langage de programmation orienté objet compilé utilisé par Apple Corporation, construit sur la base de la langue et du paradigme de la petite taille. L'objectif-c langue est une soudaineté de la langue Si, de sorte que le code C est entièrement compris par le compilateur de l'objectif-C. La langue est principalement utilisée pour Mac OS X (cacao) et Gnustep - implémentations d'une interface OpenStep Occashed. En outre, la langue est utilisée pour iOS (Cocoa Touch).

11. Shell.

Ce n'est pas tellement une langue que l'interpréteur de commande (langue de commande). Ses scripts sont utilisés pour automatiser les mises à jour logicielles. Contient des conceptions standard pour les cycles, la ramification, les caractéristiques des fonctions. La famille de systèmes d'exploitation compatibles avec Unix OS, la langue de Shell est utilisée comme langue de gestion des tâches standard.

12. R.


Langage de programmation pour le traitement des données statistiques et le travail avec des graphiques, ainsi qu'un logiciel d'informatique open source dans le cadre du projet GNU. R est largement utilisé comme logiciel d'analyse de données statistiques et est devenu une norme pour les programmes statistiques. L'interface de ligne de commande est utilisée dans R.

13. Perl.


Langage de programmation général dynamique dynamique de haut niveau. Le nom de la langue est une abréviation qui est déchiffrée comme une extraction pratique et une langue de rapport - "Langue pratique pour extraire des données et élaborer des rapports". La principale caractéristique de la langue est ses riches opportunités pour travailler avec du texte, y compris le travail avec des expressions régulières, intégrées à la syntaxe. Pour le moment, il est utilisé pour effectuer une large gamme de tâches, y compris l'administration du système, le développement Web, la programmation de réseau, le jeu, la bioinformatique, le développement d'interfaces utilisateur graphiques.

14. Scala.


Langage de programmation multidigmal conçu par brief et de type-sûr pour créer un logiciel de composant facile et rapide, combinant une programmation fonctionnelle et orientée objet. Scala - Les programmes sont en grande partie similaires aux programmes Java et peuvent interagir librement avec le code Java.

15. aller.


Langage de programmation multi-threadé compilé développé par Google. La langue GO a été développée comme système de programmation système pour créer des programmes très efficaces opérant sur des systèmes distribués modernes et des processeurs multicœurs. Il peut être considéré comme une tentative de créer une substitution du langage SI. Lorsque vous développez une attention particulière, une attention particulière a été accordée pour assurer une compilation extrêmement efficace. Les programmes Go sont compilés dans le code d'objet et ne nécessitent pas de machine virtuelle à exécuter.

16. SQL.

Langue des requêtes structurées. Langage de programmation non concentré formel utilisé pour créer, modifier et gérer des données dans une base de données relationnelle arbitraire, gérée par le système de gestion de base de données correspondant. SQL est principalement une langue logique des informations conçue pour décrire, modifier et extraire des données stockées dans des bases de données relationnelles. Chaque offre SQL est une demande de données de la base de données ou l'accès à la base de données, ce qui entraîne une modification des données dans la base de données.

17. Haskell.


Langue de programmation générale de la programmation générale normalisée. C'est l'une des langues de programmation les plus courantes avec les langages informatiques différés. La caractéristique distinctive de la langue est une attitude grave envers la frappe. Haskell Excellente langue d'apprentissage et d'expériences avec des types de données fonctionnels complexes.

18. Swift.


Langage de programmation à usage général compilé multiparadigmal. Créé par Apple principalement pour iOS et OS X. Swift Developers travaille avec Cacao et Cocao Touch Cadres et compatible avec le code Apple de base, écrit sur l'objectif-c. Swift pensait à quel point lire et résister aux erreurs du programmeur, plutôt que celles précédemment précédées d'objectifs-c. Swift a beaucoup emprunté de l'objectif-C, mais il n'est pas déterminé par les signes, mais les types de variables que le compilateur traite. Pour un principe similaire, de nombreuses langues de script fonctionnent.

19. MATLAB.


Langage de programmation interprétable de haut niveau, y compris les structures de données basées sur des matrices, une large gamme de fonctions, un environnement de développement intégré, des fonctionnalités orientées objet et des interfaces à des programmes écrits dans d'autres langages de programmation. Les programmes écrits sur MATLAB sont deux types - fonctions et scripts. Les fonctions ont des arguments d'entrée et de sortie, ainsi que leur propre espace de travail pour stocker les résultats intermédiaires des calculs et des variables. Les scripts utilisent également l'espace de travail global. Les scripts et les fonctions sont stockés sous forme de fichiers texte et compilés dans le code de la machine de manière dynamique.

20. Visual Basic.


Langage de programmation, ainsi qu'un environnement de développement logiciel intégré développé par Microsoft. La langue de Visual Basic a hérité de l'esprit, du style et de la syntaxe de son ancêtre - la langue de base, qui a beaucoup de dialectes. Dans le même temps, Visual Basic allie des procédures et des éléments de langages de programmation orientés orientés objet et orientés vers les composants.

Visual Basic est également un bon outil pour un développement rapide des applications RAD de base de données pour les systèmes d'exploitation Microsoft Windows. De nombreux composants prêts à l'emploi fournis avec le support sont conçus pour aider le programmateur à commencer immédiatement à développer la logique commerciale de l'application, sans distraire son attention pour écrire le code de démarrage du programme.

21. DELPHI.


Langue de programmation impérative, structurée et orientée objet avec variables de typage statiques strictes. Le domaine d'utilisation principal est l'écriture du logiciel appliqué.

Aujourd'hui, avec la prise en charge du logiciel Windows 32 et 64 bits, a mis en place la possibilité de créer des applications pour Apple Mac OS X, ainsi que pour Google Android (directement exécuté sur le processeur de bras).

22. Groovy.


Langage de programmation orienté objet, conçu pour la plate-forme Java, en complément de la langue Java avec des capacités Python, Ruby et SmallTalk. Groovy utilise une syntaxe de type Java avec une compilation dynamique dans le code octet JVM et fonctionne directement avec un autre code Java et des bibliothèques. La langue peut être utilisée dans n'importe quel projet Java ou en tant que langage de script.

23. Visual Basic .NET


Langage de programmation orienté objet, qui peut être considéré comme le prochain tour de l'évolution de Visual Basic, implémenté sur la plate-forme Microsoft .NET. Vb.net n'a pas de compatibilité en arrière avec une version antérieure (Visual Basic 6.0). Le développement de projets d'anciennes versions (*. .VBP) est possible uniquement après une conversion préliminaire au format VB.NET avec un maître spécial (assistant de migration); Cependant, après la conversion, le raffinement manuel essentiel des textes est requis.

24. D.

Langage de programmation compilé multidigmal créé par Walter Bright de Digital Mars. Initialement, D a été conçu comme une réingénierie C ++, malgré l'effet significatif de C ++, ce n'est pas son option. En outre, la langue a connu des concepts des langages de programmation Python, Ruby, C #, Java, Eiffel.

25. Assembleur.


Langue de niveau basse orientée automatique avec des commandes, pas toujours pertinentes pour les commandes de la machine, qui peuvent fournir des possibilités supplémentaires comme un macrocomand; Autocode, langages de programmation de haut niveau avancés, tels que les expressions, les macros, les moyens de fournir une modularité logicielle.

Langue Assembleur - Le système de désignation utilisé pour soumettre à la forme lisible de programmes enregistrés dans le code de la machine. Le langage Assembler permet au programmeur d'utiliser les codes mnémoniques alphabétiques des opérations, à sa discrétion, attribuer des noms symboliques avec des ordinateurs avec des ordinateurs et une mémoire, ainsi que de définir des schémas d'adressage conviviaux. De plus, il vous permet d'utiliser différents systèmes de numérotation pour représenter des constantes numériques et permet de marquer les chaînes du programme avec des étiquettes avec des noms symboliques afin que vous puissiez les contacter.

Je n'ai pas pris toutes les langues. Ils ne sont pas tant de la demande des programmeurs professionnels. Ma tâche est terminée, vous pouvez maintenant choisir une langue appropriée et la conquérir. Bonne chance à vous dans vos efforts.

L'écriture de la plupart des programmes informatiques modernes est effectuée lors de l'utilisation de langages de haut niveau. Il convient de noter que beaucoup d'entre eux ont été développés dans les années 60 et 70, mais sont toujours pertinents. Quels autres faits sur les langues de haut niveau pouvons-nous célébrer? Quelles sont les variétés les plus courantes des solutions pertinentes?

Essence de programmes de haut niveau pour les programmes d'écriture

Langage de programmation de haut niveau - Outil relatif à la catégorie indépendante de la machine. Qu'est-ce que ça veut dire? Le fait est que les langages de programmation sont divisés en plusieurs catégories.

Il existe un code de machine: un ensemble d'algorithmes conçus pour gérer directement l'utilisateur par des éléments matériels de l'ordinateur. Leur entité dépendra entièrement de la machine: seuls certains algorithmes conviennent à des types spécifiques de PC.

Il y a des assembleurs de langues. En fait, ils constituent une superstructure sur ceux conçus pour le contrôle de bas niveau des composants matériels PC au moyen d'un code de machine. Mais dans de nombreux signes, les langages de l'assembleur sont également acceptés pour être liés à la personne à charge de la machine. En règle générale, ils sont adaptés à une variété spécifique de composant matériel PC. Leur tâche principale est de simplifier la gestion de l'utilisateur de l'ordinateur grâce à des communications de bas niveau appropriées.

À son tour, le langage de programmation de haut niveau permet à l'utilisateur d'interagir avec le PC, quel que soit lequel des équipements particuliers sont installés sur l'ordinateur. Par conséquent, il devrait être attribué à la machine indépendante de la machine. Lorsque vous écrivez des systèmes d'exploitation, le langage de programmation de haut niveau est le plus souvent impliqué. Mais il y a un système d'exploitation qui est écrit sur l'assembleur. Les niveaux bas et élevés peuvent être utilisés simultanément. Une personne, donnant des équipes de haut niveau PC, de toute façon, de les transmettre à des composants matériels spécifiques, et cette fonction peut être mise en œuvre lors de l'utilisation simultanément sur les langages de l'assembleur avec de haut niveau, qui est impliqué dans la structure du fonctionnement. système.

Traducteur

Les éléments les plus importants dans les langages de programmation de haut niveau sont des traducteurs. Leur fonction peut être différente. Parmi les principaux domaines d'application des traducteurs - "Traduction" des commandes générées dans le langage de programmation de haut niveau, dans le code de la machine, compréhensible à un composant matériel spécifique du PC, par exemple le processeur. Les traducteurs qui effectuent cette fonction sont également appelés compilateurs. Il existe une autre variété de composants pertinents - interprètes. Ils sont destinés, à leur tour, pour la "traduction" d'équipes de haut niveau chez celles qui sont compréhensibles au système d'exploitation ou à tout programme.

Classification des langues de haut niveau

Les langages de programmation de haut niveau peuvent être classés pour différentes bases. Un schéma pour lequel ils sont divisés en variétés principales suivantes sont courantes:

Orienté vers le haut (fonctionner comme un outil lors du traitement des informations à n'importe quel stade des calculs);

Axé sur les problèmes (utilisés comme moyen de résoudre l'industrie et des tâches appliquées formées en élargissant les applications de PC);

Orienté objet (peut être des cas particuliers des deux premiers types de langues, cependant, s'adapter à une large gamme de développeurs ayant différents niveaux de préparation, par exemple, sous la forme d'une solution avec une interface visuelle).

Considérons maintenant certaines langages de programmation de haut niveau historique et moderne, qui correspondent à cette classification.

Langues orientées procédurales

Telle peut être attribuée à Fortran. Il est considéré comme le premier langage de programmation de haut niveau créé pour une utilisation généralisée. Il est caractérisé par une structure simple. Les langues orientées procédurales appartiennent également à Beysik. Il est considéré comme l'une des programmations les plus fréquemment utilisées. Un exemple d'une autre langue orientée procédurale - SI. Initialement, il a été créé pour UNIX OS. Sur sa base, la langue C ++ a ensuite été créée, complétée par des outils de programmation orientés objet. Une autre langue appartenant à la catégorie à l'étude est Pascal. Souvent également impliqué dans la programmation de la formation. Les possibilités de cette langue permettent d'être utilisées comme un outil très puissant pour développer des espèces de logiciels professionnels.

Langues axées sur les problèmes

Ceux-ci incluent Lisp, prologue. La première langue a été développée en 1962 - quelques années après la création de Fortran. Il est considéré, d'une manière comme la seconde de l'histoire. Activement impliqué comme un outil pour le travail des programmeurs avec des chaînes de caractères. En pratique, LISP a été utilisé dans des systèmes classés comme expert, ainsi que ceux destinés aux calculs analytiques. Le prologue a été largement utilisé dans le domaine de la programmation logique. En pratique, le plus souvent impliqué dans la gestion d'algorithmes d'intelligence artificielle dans les systèmes respectifs.

Langues orientées objet

Nous étudions maintenant les exemples de langages de programmation de haut niveau qui font référence à la catégorie des objets orientés objet. Parmi ceux-ci - Visual Basic, Delphi, Visual Fortran, noté ci-dessus C ++, ainsi que Prolog ++. En fait, tous sont basés sur des langues orientées vers la procédure. Cependant, il est supposé être un ajout important aux éléments visuels de la gestion afin de développer ultérieurement les algorithmes nécessaires par les développeurs habitués à d'autres outils. Ainsi, le premier langage de programmation de haut niveau - Fortran - peut être étudié par des experts informatiques à travers les possibilités de Visual Fortran. Une méthode similaire peut être rapidement maîtrisée d'une base ou d'un prologue.

Il est effectué, à son tour, lors de l'utilisation de la programmation DELPHI dans la langue de l'objet de haut niveau Pascal. Il existe un grand nombre d'autres environnements de développement logiciel, classés comme une langue orientée objet. Ce domaine des technologies de développement se développe activement.

Fortran et Lisp - les première et seconde langues de haut niveau

Nous étudierons davantage, car le premier langage de programmation de haut niveau est apparu - Fortran, ainsi que le LISP, considéré comme le second. En 1954, les développeurs d'IBM, dirigés par John Bacus, ont créé une langue par laquelle les programmeurs ont pu atténuer de manière significative l'interaction avec le PC, que jusqu'à ce que le moment ait été effectué via des commandes ou un assembleur de la machine. Il s'appelait Fortran et est vite devenu connu dans l'URSS sous un article russified. Fortran est devenu un outil populaire pour l'informatique scientifique.

Le principal élément révolutionnaire proposé par les spécialistes IBM, est devenu le même compilateur, conçu pour être une alternative à l'assembleur. Au cours des premières années de la pratique des programmes d'écriture lors de l'utilisation de Fortran, de nombreux développeurs ont considéré que le compilateur n'est pas une solution à succès, tout d'abord, en termes de coûts de main-d'œuvre. De nombreux codes de machine étaient bien préparés plus facilement que lorsque le traducteur est impliqué. Toutefois, comme une augmentation rapide des performances de l'ordinateur, les programmeurs ont commencé à se rendre compte que sans utiliser le compilateur, un logiciel efficace qui utilisera pleinement la puissance informatique du PC, afin de créer extrêmement problématique. Ainsi, les débuts des développeurs d'IBM ont été développés. Les principales structures syntaxiques du langage de programmation de haut niveau de Fortran dans de nombreux cas ont commencé à utiliser comme base lors de la création de nouvelles solutions.

Un exemple de réalisation de résultats concrets dans le développement de concepts énoncés dans Fortran peut être considéré comme la création de LISP. Cette langue a été développée en 1958, cependant, a acquis une large gloire quelque peu plus tard - dans les années 1960. Lisp a été développé par John McCarthy et publié dans l'un des magazines populaires pour les spécialistes informatiques. L'objectif principal de la langue considérée est de traiter des listes. LISP est devenu populaire dans l'environnement de développement des systèmes d'intelligence artificielle. Sur sa base, des langues telles que le planificateur, le régime, ainsi que les LISP communes, ont été créées. Il a également également donné un impact significatif sur de nombreux outils modernes de développement de logiciels. La structure de langages de programmation de haut niveau, populaire aujourd'hui, est largement basée sur les algorithmes de Fortran et Lisp.

Il sera toutefois intéressant de considérer d'autres approches de la classification des outils examinés des outils de développement logiciel.

Langues universelles de haut niveau

Ainsi, les experts modernes allouent des langues universelles de haut niveau. Celles-ci incluent en particulier celles qui ont été développées dans les années 60. Principales caractéristiques:

Orientation sur une large gamme de tâches (tout d'abord liées au calcul);

Un grand nombre de structures de langue et d'algorithmes;

Signification non seulement pour son temps, mais aussi pour le stade moderne de développement des équipements informatiques;

Soutien dans les langues concernées de la méthodologie impérative.

Les langues universelles sont fondamentales dans l'industrie de développement informatique concernée. On peut noter que jusqu'à présent, ils n'ont pas d'analogues directs de la structure interne. En fait, cela explique en grande partie la pertinence de l'utilisation des langues pertinentes dans des interfaces modernes orientées objet. Également en général dans les langues marquées - Type de données. Ce facteur prédéfinit largement leur polyvalence. Parmi les propriétés les plus remarquables des langues appartenant à la catégorie de la continuité universelle. Ainsi, les langues historiques sont généralement basées sur les concepts de prédécesseurs.

Langues uniques

Certains experts IT allouent dans une catégorie indépendante "langues uniques". Parmi ceux: APL, Cobol, Setl, ainsi que CLU. Quelle est leur spécificité?

L'aspect le plus important de l'APL est l'implication des tableaux (vecteurs et matrices) en tant que type structural clé. Les spécificités de la langue Cobol - dans l'orientation sur la sphère commerciale. Ainsi, il est conseillé de l'utiliser lors de la résolution des problèmes associés à un format normalisé de représentation des résultats. La langue de début est caractérisée par l'utilisation d'enregistrements de logiciels postfix, ainsi que de notation élégante. Dans la langue SETL, les ensembles de valeurs sont utilisés comme l'un des principaux types de données. Le langage de programmation de haut niveau est également CLU. Sa principale caractéristique consiste à utiliser le concept de travail avec des types de données abstraits. De nombreux spécialistes informatiques considèrent l'émergence logique de nouvelles solutions basées sur des langues uniques, telles que, par exemple, Cobol orienté objet.

Equipements Programmation parallèle

Cette catégorie peut inclure un grand nombre de solutions. À son tour, les langages de programmation parallèles peuvent avoir un grand nombre de motifs de classification. Par exemple, la méthode d'organisation des processus. Cette base implique la classification des moyens de programmation parallèle en fonction de la présence:

Sopogrammes;

Branches;

Les associations;

Crochets parallèles;

Algorithmes de travail avec des processus.

Une autre base pour la classification des langues du type à l'étude est des méthodes de synchronisation des processus. Les solutions correspondantes peuvent donc inclure:

Sémaphores;

Moniteurs;

- "randevu";

Sections critiques;

Procédures de défi à distance;

Transactions liées à la catégorie atomique.

Les langues du type de type incluent Modula-2, Bliss, Concurrent Pascal, DP, Argus.

Famille de langue C.

Au-dessus, nous avons considéré comme un exemple de langage de programmation de haut niveau, une telle solution que C. en fait, elle forme une famille entière. Les langues appartenant à ce prix sont des structures privées C. Donc, son ajout à divers composants orientés objet ont conduit au développement de C ++. Après un filtrage substantiel d'une rangée de constructions C, Java est apparu. On peut noter que Java a été créé à bien des égards sous l'influence des concepts du projet Oberon, qui est géré par Niklaus Wirth, le créateur de la langue Pascal. Le JavaScript de haut niveau correspond-il à JavaScript de haut niveau? Bien sûr, oui, malgré l'étroitesse de la demande - comme outil de développement de pages Web. Mais les langages de programmation de haut niveau n'incluent pas, en particulier, HTML, XML et SGML. Ils sont classés comme outils de balisage hypertexte.

Famille de langue Pascal

Langues de programmation de haut niveau Pascal forment également une famille distincte. Sur la base de Pascal, il a été créé Oberon, classé comme une langue de type orientée objet. La principale caractéristique d'Oberon - dans la capacité d'assurer la sécurité des types. Ne comptez pas Oberon, les langues de la famille Pascal peuvent être attribuées à Modula-2, ainsi que composant Pascal.

Famille de langue ada

Le fondamental de la catégorie de langues concernée - ordonnée par le département américain de la défense ada. Il a été créé à la fin des années 70 - au début des années 80. Il est caractérisé par un grand nombre de fonctions, d'opportunités, de polyvalence. La famille ADA comprend des solutions telles que le cèdre, la modulation 3.

Simula Language famille

La langue Simula est distribuée dans les succursales de programmation associées à la modélisation d'imitation. La spécificité des solutions appropriées - dans la participation d'un noyau spécifique. Son utilisation vous permet d'appliquer diverses extensions adaptées à l'une ou aux autres applications. Basé sur SIMULA, une langue de petite langue orientée objet a été créée, ainsi que la version bêta, caractérisée par la possibilité de combiner dans une seule abstraction d'algorithmes, reflétant les travaux avec des données, des procédures et des contrôles. Les objets bêta peuvent être pris en compte dans un contexte différent, par exemple, en tant que variables, fonctions ou systèmes parallèles.