Types de langages formels. Définition formelle des langages de programmation. Logiciel ACS

Au cours des 70 dernières années, la programmation est devenue un vaste domaine de l'activité humaine dont les résultats, dans leur importance pratique, sont tout à fait comparables aux derniers résultats dans le domaine de la physique nucléaire ou de la recherche spatiale. Ces résultats sont en grande partie dus à l’émergence et au développement rapide de langages algorithmiques de haut niveau.

Les langages de programmation modernes de haut niveau, tels que Pascal, C, Ada, Java, C++, C# et autres, restent l'outil le plus courant et le plus puissant pour les programmeurs développant à la fois des logiciels système et des applications. Avec l'avènement de nouvelles tâches et besoins, les fonctionnalités de ces langages s'étendent constamment grâce à la création de versions de plus en plus avancées.

Une autre direction dans le développement des langages de programmation est associée à la création de systèmes et d'environnements logiciels spécialisés (orientés vers des problèmes) pour les utilisateurs non programmeurs (technologues, concepteurs, économistes, etc.). Des exemples de tels systèmes et environnements sont les systèmes de CAO à diverses fins, les systèmes d'enseignement automatisés, les systèmes d'apprentissage à distance, les systèmes d'experts et de modélisation en économie, etc. La finalité des langages orientés problèmes correspondants utilisés dans de tels systèmes se reflète souvent dans leurs noms, par exemple : « Langage pour décrire les circuits d'équipements technologiques », « Langage pour décrire un scénario d'apprentissage », « Langage pour modéliser des situations » , etc.

Les langages de programmation à usage général et orientés problèmes ont une chose en commun : ils sont

langages formels. Qu'est-ce qu'un langage formel ? Sous sa forme la plus générale, on peut répondre à cette question comme suit : langue -ça fait beaucoup de propositions, et langue formelle - c'est une langue dont les phrases sont construites selon certaines règles.

Les phrases sont constituées de mots et les mots sont constitués de symboles (lettres). L'ensemble de tous les caractères valides est appelé alphabet langue. Dans les langages de programmation, les phrases correspondent généralement à des instructions (ou instructions), et on voit des symboles alphabétiques sur un clavier d'ordinateur.

Les langages naturels et les langages de programmation sont des ensembles infinis. Vous pouvez écrire un nombre illimité de programmes dans un langage de programmation.

Comment fixer les règles de construction des phrases dans un langage formel ? Pour répondre à cette question, nous partirons de deux concepts importants : syntaxe Et sémantique langue.

Syntaxe Le langage détermine la structure des phrases et des mots corrects et, dans les langages de programmation, entre autres choses, les structures acceptables des textes de programme.

Il existe différentes manières de décrire la syntaxe des langages formels (le deuxième chapitre du manuel est consacré aux méthodes de description). Les langages de programmation les plus utilisés sont Formulaire Backus - Naura(BPF) et diagrammes de syntaxe.

BNF a été développé par Backus et a été utilisé pour la première fois pour décrire strictement le langage ALGOL-60 en 1963. Cette forme est utilisée à la fois pour décrire la structure du langage dans son ensemble et pour décrire les constructions individuelles du langage (sous-ensembles du langage) et ses éléments. - opérateurs, identifiants, expressions, nombres, etc.

Vous trouverez ci-dessous des exemples de BNF qui définissent la syntaxe des entiers décimaux et la syntaxe des expressions arithmétiques contenant les opérateurs « + » et « * ».

BNF d'entiers décimaux :

= 0|1|...|9

BNF des expressions arithmétiques :

:= () UN

Dans les expressions données UN désigne tout identifiant et est traité comme un symbole de l'alphabet à partir duquel l'expression est construite.

Sur le côté gauche du BNF, les noms des éléments définis sont écrits entre crochets. catégories syntaxiques(concepts, unités), le symbole « := » signifie « est », « ceci », « est défini comme », le symbole « | » signifie « ou ».

Le côté droit du BNF définit les options possibles pour construire des valeurs spécifiques de ces catégories, en l'occurrence les valeurs des nombres décimaux et des expressions arithmétiques spécifiques. BNF contient également l'alphabet des symboles à partir duquel ces valeurs sont composées. Pour les entiers décimaux, l'alphabet est l'ensemble (+,-, 0, 1,..., 9), et pour les expressions, c'est l'ensemble (UN, *, +, (,)}.

Le processus de construction des significations d'une catégorie syntaxique consiste à conclusion ces valeurs par substitutions successives des membres de droite des règles BNF dans les membres de gauche. Ci-dessous se trouvent les sorties du nombre « - 320 » et l'expression "a+a*a" en utilisant le BNF correspondant :

BNF présente de grandes similitudes avec grammaires formelles, utilisé dans la théorie des langages formels (certains auteurs les identifient).

C'est l'émergence du BNF qui a stimulé le développement rapide de la théorie des langages formels et son application aux problèmes appliqués au développement de langages de programmation et à la conception de traducteurs.

Si dans les BNF considérés, chaque catégorie syntaxique du côté gauche des règles est désignée par UN B Et AVEC en conséquence, et au lieu du symbole := utiliser - les formes suivantes seront obtenues :

Pour les entiers décimaux :

A->B+B-B B^>CBC C->0 | 11... | 9

Pour les expressions arithmétiques :

A^A+BB

B->B*SS

C^>(A)a

C'est ainsi que les règles sont écrites grammaires formelles. Symboles désignant des catégories syntaxiques, dans ce cas, AVANT JC dans les grammaires formelles, ils sont appelés symboles non terminaux, et les symboles de l'alphabet sont Terminal.

En pratique, après avoir obtenu la grammaire d’un langage de programmation en « première approximation », il est nécessaire d’examiner ses propriétés, et dans certains cas, d’effectuer quelques transformations. Cela est principalement dû à la nécessité de donner à la grammaire une forme pratique pour construire le traducteur correspondant. Dans le processus d'exécution de ces transformations, d'un point de vue formel, peu importe les catégories syntaxiques spécifiques et les symboles alphabétiques contenus dans le BNF. Par conséquent, à ce stade, ils passent généralement à la grammaire formelle et utilisent les méthodes appropriées de la théorie des langages formels. En même temps, il ne faut pas identifier complètement le BNF avec les grammaires formelles. La définition de la grammaire dans la théorie des langages formels est plus générale. Ils peuvent notamment être utilisés pour décrire dépendances de contexte, ce qui ne peut pas toujours être évité lors du développement de langages de programmation et qui ne peut être décrit à l'aide de BNF.

Une caractéristique des grammaires des langages de programmation est la présence de récursivité. Récursivité signifie que la définition d'une certaine catégorie syntaxique contient la catégorie elle-même en cours de définition (c'est ce qu'on appelle la récursion explicite). Par exemple, dans les définitions BNF considérées pour les catégories Et contiennent ces catégories elles-mêmes sur le côté droit. Récursion - une propriété presque inévitable des grammaires des langages de programmation qui leur permet d'être infinies. Dans le même temps, certains types de récursivité, qui seront discutés plus tard, compliquent considérablement le processus de développement des traducteurs correspondants.

Arrêtons-nous brièvement sur une autre méthode mentionnée ci-dessus pour décrire la syntaxe d'un langage à l'aide de diagrammes syntaxiques. Certains auteurs, décrivant la norme linguistique, privilégient cette méthode en raison de sa plus grande clarté. Des exemples de diagrammes de syntaxe peuvent être trouvés dans de nombreux livres de programmation (par exemple, dans). Notez que les deux méthodes de description - BNF et diagrammes syntaxiques sont équivalentes et vous pouvez toujours passer d'une méthode de description à une autre.

Considérons maintenant le concept sémantique du langage. Si la syntaxe d'une langue détermine la structure de ses phrases et textes corrects, alors la sémantique détermine l'exactitude de leur sens. À son tour, l'exactitude du sens dépend du sens des mots qui composent les phrases. Par exemple, si dans une langue naturelle nous définissons la syntaxe d’une phrase comme

alors vous pouvez construire de nombreuses phrases avec des significations différentes. Par exemple, les phrases « la voiture conduit » et « la voiture pense » sont correctes d'un point de vue syntaxique. Cependant, la première phrase a un sens correct, la seconde peut être considérée comme dénuée de sens. Ainsi, la sémantique définit un ensemble de significations et de correspondances acceptables entre les phrases (textes) et les significations.

De plus, la sémantique d'un langage dépend des propriétés des objets décrits dans ce langage. Si, dans l'exemple considéré, la voiture était équipée d'un ordinateur doté de programmes permettant de calculer les modes et itinéraires de déplacement optimaux, alors la deuxième phrase ne semblerait plus dénuée de sens.

De même, dans les langages de programmation, l'opérateur d'affectation syntaxiquement bien formé

sera sémantiquement incorrect si a a la valeur 10,5 (a = 10,5) et b a la valeur false (b = false).

Une description formelle de la sémantique des langages de programmation s'est avérée être une tâche beaucoup plus difficile qu'une description de la syntaxe. La plupart des travaux consacrés à l'utilisation des méthodes mathématiques dans la mise en œuvre des langages de programmation couvrent précisément les problématiques de description de la syntaxe et de construction de méthodes d'analyse syntaxique. Une théorie et une méthodologie assez complètes se sont développées dans ce domaine. Parallèlement, la sémantique du langage et l'analyse sémantique restent à ce jour l'objet de nombreuses études.

De nombreux aspects de la sémantique d'un langage de programmation peuvent être décrits sous la forme d'une liste de conventions sémantiques de nature générale et informelle. Par exemple, les programmeurs connaissent des conventions telles que « chaque identifiant dans un bloc est défini une fois », « une variable doit être définie avant de pouvoir être utilisée », etc.

Un exemple d'application réussie de la théorie des langages formels dans le domaine de la sémantique et de l'analyse sémantique est l'appareil des grammaires de traduction d'attributs, qui permet de prendre en compte les conventions sémantiques dans la description d'une langue et de contrôler leur conformité pendant traduction du programme.

Quant aux prévisions sur les perspectives de développement futur des langages de programmation, il existe un éventail assez large d'opinions, même diamétralement opposées. Certains auteurs pensent que chaque langage a ses propres caractéristiques sémantiques qui le rendent pratique et attrayant pour un domaine de programmation particulier (par exemple, Prolog et Lisp - axés sur la résolution de problèmes d'intelligence artificielle ; Fortran - le plus efficace pour résoudre des problèmes informatiques ; Cobol - utilisé pour les calculs économiques, etc.). Par conséquent, vous devez créer toutes les nouvelles langues dotées de fonctionnalités spécifiques ou mettre à jour périodiquement les versions existantes, plutôt que d'essayer de créer une langue universelle. À l'appui de ce point de vue, l'argument est avancé que tous les projets ambitieux visant à créer un langage universel ont échoué (il suffit de rappeler les espoirs non réalisés associés au développement des langages ADAiPL-1).

Une autre partie des auteurs estime que depuis la publication des standards des premiers langages de programmation - Fortran, Algol, etc. - dans les années 60. XXe siècle, il y a eu une « stabilisation » des langues dans le sens où les constructions linguistiques ayant un objectif similaire dans différentes langues ont pratiquement la même base sémantique, malgré les différences de vocabulaire et de syntaxe. Ainsi, dès qu'il sera possible de définir formellement cette base sémantique commune, il sera possible de commencer à créer un langage universel, qui ne sera plus un langage de programmation au sens traditionnel, mais des ébauches de structures sémantiques. Le programme sera représenté comme un ensemble de ces constructions, et l'éditeur de texte cédera la place à un éditeur structuré. À titre d'exemple d'implémentation partielle de cette approche, des environnements de programmation visuels tels que Delphi, C++ Builder, etc. sont donnés.

Fin

Commencer

Répéter

Commencer

Pseudocodes

Le pseudocode est un système de notations et de règles conçu pour écrire uniformément des algorithmes. Il occupe une place intermédiaire entre le langage naturel et le langage formel.

D’une part, il est proche du langage naturel ordinaire, de sorte que les algorithmes peuvent y être écrits et lus comme du texte ordinaire. D'un autre côté, le pseudocode utilise certaines constructions formelles et un symbolisme mathématique, ce qui rapproche la notation algorithmique de la notation mathématique généralement acceptée.

En pseudocode, les règles syntaxiques strictes d'écriture des commandes inhérentes aux langages formels ne sont pas adoptées, ce qui facilite l'écriture de l'algorithme au stade de la conception et permet d'utiliser un ensemble plus large de commandes conçues pour un exécuteur abstrait. Cependant, le pseudocode contient généralement certaines constructions inhérentes aux langages formels, ce qui facilite le passage de l'écriture en pseudocode à l'écriture d'un algorithme dans un langage formel. En particulier, dans le pseudocode, ainsi que dans les langages formels, il existe des mots de fonction dont la signification est déterminée une fois pour toutes. Ils apparaissent en gras dans le texte imprimé et sont soulignés dans le texte manuscrit. Il n'existe pas de définition unique ou formelle du pseudocode, donc divers pseudocodes sont possibles, différant par l'ensemble des mots de fonction et des constructions de base (de base). A titre d'exemple, voici une entrée dans l'un des pseudo-codes de l'algorithme :

algorithme Algorithme euclidien ;

Au revoir le premier nombre n'est pas égal au deuxième

Si les nombres sont égaux

Que arrêt Tous;

sinon déterminer le plus grand de deux nombres ;

h remplacer le plus grand nombre par la différence entre le plus grand et le plus petit nombre

fin;

prends le premier chiffre comme réponse

Cet algorithme peut être écrit plus simplement, mais pour démontrer les principales constructions de pseudocode possibles, c'est exactement la notation donnée. De par leurs caractéristiques, les pseudocodes, comme les autres moyens d'enregistrement des algorithmes décrits ci-dessus, sont orientés vers l'humain.

Il a été noté plus haut que lors de l'écriture d'un algorithme sous forme verbale, sous forme de schéma ou en pseudocode, un certain arbitraire est autorisé dans la représentation des commandes. Dans le même temps, un tel enregistrement est si précis qu'il permet à une personne de comprendre l'essence du problème et d'exécuter l'algorithme.

Cependant, dans la pratique, des machines spéciales - des ordinateurs électroniques (ordinateurs) - sont utilisées comme exécuteurs d'algorithmes. Ainsi, un algorithme destiné à être exécuté sur un ordinateur doit être écrit dans un langage « compréhensible » par l’ordinateur. Et ici, la nécessité d'un enregistrement précis des commandes, ne laissant aucune place à une interprétation arbitraire de la part de l'interprète, apparaît au premier plan. Le langage d’écriture de l’algorithme doit donc être formalisé. Cette langue est généralement appelée langage de programmation , et l'écriture de l'algorithme dans ce langage est programme pour ordinateur.


Langage de programmation est un langage formalisé qui est un ensemble d'alphabet, de règles d'écriture des constructions (syntaxe) et de règles d'interprétation des constructions (sémantique).

Actuellement, il existe plusieurs centaines de langages de programmation conçus pour différents domaines d'application informatique, c'est-à-dire pour différentes classes de problèmes résolus à l'aide d'un ordinateur. Ces langues sont classées en différents niveaux, en tenant compte du degré de dépendance de la langue à un ordinateur spécifique.

Concepts de base

Algorithme - Il s'agit d'un ordre (ordre ou système d'ordres) qui définit le processus de transformation des données sources en résultat souhaité, qui a les propriétés suivantes :

  • la certitude, c'est-à-dire l'exactitude et la clarté pour l'exécutif ; en raison de cette propriété, le processus d'exécution de l'algorithme est de nature mécanique ;
  • l'efficacité, c'est-à-dire la capacité à conduire au résultat souhaité après un nombre fini d'étapes assez simples ;
  • répandu, c'est-à-dire aptitude à résoudre n'importe quel problème d'une certaine classe de problèmes.

De la définition d'un algorithme, il ressort clairement que le processus de son exécution doit être discret, constitué d'étapes distinctes, d'actes algorithmiques. L'exigence de simplicité de ces étapes est due au fait que, en permettant une complexité illimitée des étapes, on privera le concept d'algorithme de toute certitude. La propriété d’un algorithme de conduire à une solution en un nombre fini d’étapes est appelée faisabilité potentielle.

Les langages naturels sont peu utiles pour formuler des instructions définitives et précises. L’algorithme doit donc être une prescription dans un langage formel.

Chaque ordinateur est développé pour résoudre principalement des problèmes d’une certaine classe. À cet égard, il est nécessaire que l'ordinateur soit capable d'effectuer dans les combinaisons requises un certain ensemble d'opérations, considérées comme élémentaires.

Opérations élémentaires sur les machines saisissent des informations dans une cellule RAM à partir d'un autre périphérique de stockage, émettent des informations à partir de la cellule, ainsi que toute opération qui : est implémentée dans le matériel ; possède des données initiales qui sont le résultat d'opérations élémentaires de la machine et fixées dans une ou plusieurs cellules ; donne un résultat qui est enregistré dans une cellule distincte et est disponible, mais non obligatoire, pour être utilisé comme donnée initiale de toute opération élémentaire de la machine ; ne peut pas être considéré comme un complexe d’opérations machine plus simples qui satisfont aux trois conditions précédentes.

Système d'exploitation est la totalité de toutes les opérations de la machine prévues dans un ordinateur.

Équipe est une instruction élémentaire prévoyant l'exécution d'un certain groupe d'opérations.

Principales opérations Les ordinateurs sont des transferts arithmétiques, logiques, des transitions, lorsque la machine passe de l'exécution d'une commande à l'exécution d'une autre, récupère les commandes de la RAM et arrête la machine (« stop »). Les principales opérations sur les informations relatives aux lettres sont : la détermination de la longueur d'un mot ; transférer un mot d'un endroit de la RAM à un autre ; mettre en évidence une partie spécifique d'un mot donné ; inclusion d'espaces entre les mots ; diviser une chaîne de mots en lignes plus petites ; comparaison de deux mots. Habituellement, les opérations répertoriées sont appelées édition.

La programmation

Les ordinateurs sont généralement utilisés soit pour résoudre des problèmes individuels (appartenant à une certaine classe), soit pour résoudre un complexe de problèmes interdépendants de différentes classes.

Lors de la résolution d'un certain problème (classe de problèmes) sur un ordinateur, le travail se décompose en les étapes suivantes :

    formulation mathématique du problème ;

    développement d'une méthodologie pour le résoudre ;

    développer un algorithme pour le résoudre et l'écrire dans un langage de programmation ;

    la programmation;

    déboguer le programme sur la machine ;

    préparation des données initiales, résolution de problèmes sur ordinateur.

L'ensemble d'œuvres décrit s'appelle programmation problématique.

Lors du développement d'un système de programmes pour résoudre un ensemble de problèmes interdépendants, la séquence de travail décrite est maintenue pendant le développement de chaque programme. Par ailleurs, un certain nombre d'étapes de travail supplémentaires apparaissent liées à la nécessité d'assurer l'unité du système. Un ensemble de travaux visant à créer un système de programmes permettant de résoudre des problèmes interdépendants est appelé programmation du système.

Formulation mathématique du problème. Ce travail consiste à déterminer la composition et la nature des données initiales permettant de résoudre le problème, à déterminer les premiers résultats et à enregistrer les conditions du problème à l'aide d'une notation mathématique. L'appareil mathématique utilisé dans la formulation mathématique du problème dépend de la classe à laquelle appartient le problème.

Développement d'une méthode de résolution du problème. Une technique de solution est considérée comme développée lorsque les dépendances de tous les résultats souhaités par rapport aux résultats initiaux sont établies et que les méthodes permettant d'obtenir les résultats souhaités sont indiquées et peuvent être mises en œuvre sur un ordinateur. S'il s'avère que les méthodes sélectionnées ne conviennent pas dans le processus de résolution d'un problème sur ordinateur, il est nécessaire de revenir à l'étape de développement de la méthode.

Développement d'un algorithme pour résoudre le problème. Un algorithme pour résoudre un problème est développé sur la base de la méthodologie pour le résoudre. L'algorithme est développé dans un langage de descriptions mathématiques, puis écrit dans un langage algorithmique parmi les langages dits de programmation. Le développement d'un algorithme pour résoudre un problème doit être réalisé en tenant compte des caractéristiques de l'ordinateur.

Lorsque vous utilisez un ordinateur pour résoudre un problème, il est nécessaire de prendre en compte les caractéristiques suivantes :

  • un nombre important mais limité de chiffres dans les images de nombres ;
  • une plus grande vitesse d'exécution des opérations sur les nombres stockés dans la RAM ;
  • vitesse relativement faible d'entrée des données et de sortie des résultats ;
  • vitesse d'échange de numéros relativement faible entre la RAM et les périphériques de stockage externes ;
  • capacité de RAM relativement faible avec une très grande capacité de périphériques de stockage externes ;
  • la possibilité de pannes aléatoires de la machine et la nécessité qui en résulte de surveiller son fonctionnement.

La programmation. La programmation est V enregistrement de l'algorithme développé dans un langage de programmation (par exemple, dans le langage dit ASSEMBLY ou ALGOL, FORTRAN, COBOL, PL/I), effectué manuellement, et traduction ultérieure dans un langage algorithmique machine.

Diffuser est le processus de transformation équivalente d'un algorithme spécifié dans un langage de programmation en un algorithme en langage machine. Ce processus est effectué à l'aide d'un programme spécial appelé traducteur.

Débogage d'un programme sur une machine. Le débogage d'un programme sur une machine vise à éliminer les erreurs du programme et comprend : la surveillance du programme ; recherche et détermination du contenu (diagnostic) des erreurs ; correction des erreurs détectées.

Préparation des données initiales. Résoudre le problème sur un ordinateur. Les données initiales de la tâche à saisir dans l'ordinateur doivent d'abord être transférées des formulaires ou documents vers des bandes perforées ou des cartes perforées. Ce processus est effectué sur des appareils de poinçonnage spéciaux équipés d'un clavier. DANS Au cours du processus de perforation, des erreurs sont possibles à la fois en raison de pannes aléatoires des dispositifs de perforation et en raison d'erreurs dans le travail des opérateurs de perforation. Toutes les erreurs introduites dans les informations lors du pointage et de la saisie doivent être corrigées.

En règle générale, des PC à 80 colonnes ou des PL papier sont utilisés pour saisir des informations dans un ordinateur. Les machines plus grandes ont les deux. La carte perforée contient 12 lignes, et donc 12 perforations sont possibles dans chaque colonne ; dans le sens transversal de la bande perforée, 5, 6, 7 et 8 positions de perforation sont autorisées. Ainsi, il est théoriquement possible d'utiliser un alphabet de 2 5 =32 à 2 12 =4096 caractères, mais en pratique il y a rarement plus de 3 poinçons dans une colonne de carte perforée, donc, en règle générale, l'alphabet utilisé contient de 40 à 80 caractères. Parmi les équipements informatiques, il existe un dispositif indépendant permettant de reproduire sur papier les informations contenues sur des cartes perforées et des bandes perforées sous une forme pratique pour la lecture humaine. En conséquence, nous obtenons ce qu'on appelle habituellement liste ou impression.

Après avoir saisi les programmes et les données initiales dans l'ordinateur, le problème est résolu automatiquement.

Logiciel

Logiciel informatique (MS) peut être défini comme un certain ensemble de programmes, dont chacun peut être utilisé pratiquement par l'utilisateur seul ou en combinaison avec d'autres programmes pour résoudre des problèmes, ou pour effectuer certains travaux liés à la programmation, ou pour créer un certain mode de fonctionnement informatique .

DANS Système informatique MO peut inclure les groupes de programmes suivants :

    système d'exploitation de programmes;

    système d'outils de programmation ;

    applications aux programmes;

    système de programmes de maintenance de logiciels;

    un système de programmes de test conçus pour surveiller la santé d'un ordinateur.

système opérateur contient des programmes qui déterminent le mode de fonctionnement de l'ordinateur et étendent ses capacités opérationnelles. Le système d'exploitation comprend un certain nombre de programmes, dont les principaux sont les suivants :

répartiteur- un programme qui fournit un certain mode de fonctionnement de l'ordinateur ;

superviseur, ou moniteur,- un programme qui assure le fonctionnement assigné à la machine par un opérateur humain dans le cadre du mode établi pour celle-ci ;

un certain nombre de programmes utilitaires, tels que des programmes de saisie de données source, des programmes d'édition et de sortie de résultats, un chargeur - un programme pour saisir des programmes dits de travail dans la RAM, c'est-à-dire des programmes de résolution de problèmes, un bibliothécaire - un programme pour saisir des sous-programmes pour effectuer des macroopérations et eux-mêmes des sous-programmes de macroopérations, un programme de communication entre le système d'exploitation et un opérateur humain.

Pour le fonctionnement du système d'exploitation, les capacités dont disposent les machines modernes (et que n'avaient pas les machines de première génération) sont d'une grande importance : la présence d'un système d'interruption, la protection de la mémoire, la protection des commandes et le masquage des interruptions.

L'essence du travail du répartiteur est qu'il qualifie toute interruption du fonctionnement de la machine soit comme tactique, auquel cas il transfère immédiatement le contrôle et les informations sur l'interruption au superviseur, soit comme stratégique. Dans ce dernier cas, il autorise lui-même l'interruption. Nous appellerons le texte correspondant à cette réaction une conclusion.

Le superviseur planifie, à la demande d'un opérateur humain, l'ordre d'exécution du programme et répartit entre eux le matériel informatique disponible, organise leur file d'attente et maintient l'ordre dans cette file d'attente. Les principales tâches du superviseur sont : gérer la progression de l'ordinateur ; maintenir le contact avec un opérateur humain.

Il existe différents modes de fonctionnement informatique, dont la fourniture est l'un des objectifs principaux du répartiteur.

Un certain nombre de modes sont associés à la résolution de problèmes présentés sous la forme de ce qu'on appelle lot de travaux Dans le même temps, l'ensemble du package est fourni avec des informations sur les tâches qui y sont incluses et leurs avantages les unes par rapport aux autres (système de priorité).

L'ensemble des travaux est réalisé sous le contrôle d'un superviseur. Dans ce cas, un fonctionnement de la machine avec un seul programme, deux programmes ou plusieurs programmes peut être effectué. L'efficacité de son utilisation dépend en grande partie de la manière dont le travail est combiné en un ensemble. Un package est considéré comme bien composé si le processeur central (unité de calcul et unité de contrôle) n'est pas inactif. Les modes décrits sont appelés modes par lots. Les ordinateurs modernes permettent d'exécuter simultanément jusqu'à 16 tâches.

Mode partage de temps caractérisé par le fait qu'un grand nombre de dispositifs d'entrée-sortie d'informations à distance, appelés terminaux, sont connectés simultanément à l'ordinateur. Si, en fonctionnement par lots, les utilisateurs ne sont pas autorisés à accéder au panneau de commande, alors en mode temps partagé, chacun d'eux communique avec la machine sans la participation de l'opérateur. Le répartiteur garantit que de petits blocs de temps sont fournis séquentiellement à tous les utilisateurs en file d'attente. Sur une durée mesurée en quelques secondes, la machine rend un peu service à chaque utilisateur. Le mode temps partagé est pratique dans les cas où l'exécution du travail de la machine doit s'effectuer sous la forme d'un dialogue entre l'ordinateur et l'utilisateur. Cela se produit lors du débogage de programmes sur un ordinateur, lors de la résolution de problèmes d'information tels que des questions et réponses.

Système logiciel contient un certain nombre de programmes de traduction pour traduire les algorithmes spécifiés dans divers langages de programmation d'entrée en langage machine. En règle générale, un système d'outils de programmation contient des traducteurs de langages algorithmiques à trois niveaux.

Le processus de traduction d’un algorithme et le processus d’exécution par une machine peuvent être combinés de deux manières.

La première méthode, appelée compilation, est que le processus d'exécution d'un algorithme par une machine est effectué une fois le processus de traduction complètement terminé. Le nom « compilation » est dû au fait qu'il désignait initialement un processus de traduction basé sur la combinaison en un tout de parties pré-préparées (sous-programmes) correspondant à certaines parties de l'algorithme à traduire. Par la suite, cette appellation a été étendue au cas de traduction « dynamique », qui n’est pas associée à l’utilisation de textes préparés à l’avance.

La deuxième méthode de combinaison du processus de traduction et du processus d'exécution de l'algorithme est appelée interprétations. Cette méthode consiste dans le fait que certaines parties de l'algorithme sont exécutées immédiatement après la traduction, après quoi la même procédure est effectuée sur d'autres parties de l'algorithme, etc.

Il est caractéristique de la compilation que le programme compilateur qui l’implémente n’est plus nécessaire lors de l’exécution de l’algorithme et ne se trouve donc pas dans la RAM de l’ordinateur. L'utilisation de la méthode d'interprétation nécessite la présence d'un programme interpréteur dans la RAM de l'ordinateur lors de la résolution du problème.

Chaque méthode a ses propres avantages, mais la méthode d’interprétation est plus flexible. De plus, cela simplifie la tâche d'allocation de mémoire, même si cela nécessite une consommation de mémoire supplémentaire importante pour stocker le programme d'interprétation lui-même.

Les systèmes de programmation des ordinateurs les plus récents sont souvent basés sur le principe dit de modularité. Modules sont appelés « morceaux » d'algorithmes spécifiés dans le langage du système exécutif ou dans le langage de programmation d'entrée, pour lesquels les conditions suivantes sont remplies :

les « morceaux » d'algorithmes spécifiés dans le langage du système exécutif doivent être dotés d'informations supplémentaires suffisantes pour garantir que, avec un traitement approprié, un programme spécifié dans le langage du système exécutif puisse être assemblé à partir d'eux ;

Les « morceaux » d'algorithmes spécifiés dans les langages de programmation d'entrée doivent être fournis avec des informations supplémentaires suffisantes pour que, avec un traitement approprié, ils puissent être convertis en modules spécifiés dans le langage algorithmique du système exécutif.

Le principe de modularité réside dans le fait que les programmes dans le langage du système exécutif sont assemblés à partir de modules. Les modules dans le langage du système exécutif peuvent être accumulés dans une bibliothèque. Le principe modulaire permet d'utiliser des modules compilés dans différents langages algorithmiques lors de l'assemblage d'un programme. La possibilité d'accumuler des modules puis de les réutiliser à plusieurs reprises économise le travail des programmeurs.

Tous les logiciels doivent être des éléments d'une bibliothèque. Bibliothèque de programmes standards est une collection de programmes précompilés dans laquelle chaque programme reçoit des informations supplémentaires qui l'identifient. Les données sur tous les programmes doivent être résumées dans un tableau commun appelé catalogue. Le répertoire doit permettre de retrouver un sous-programme par son nom et par son but.

La bibliothèque rassemble généralement des programmes spécialement compilés et spécialement conçus.

Il est conseillé d'utiliser les outils de programmation répertoriés pour résoudre diverses tâches (problèmes). Dans le même temps, on pense que les programmes pour des tâches individuelles (problèmes) ne sont peut-être pas très « bons », mais le coût total de la programmation et de la résolution du problème sur un ordinateur est généralement inférieur à celui de la composition de programmes plus « bons ».

Logiciel ACS

Logiciel ACS- il s'agit d'un système de méthodes, de techniques et d'outils qui vous permettent de développer efficacement des programmes permettant de résoudre des problèmes spécifiques d'un système de contrôle automatisé sur un ordinateur, de contrôler le fonctionnement de l'ordinateur en cours de résolution de ces problèmes et de surveiller le bon fonctionnement de l'ordinateur.

Les principales dispositions à respecter lors de la création d'un MO ACS sont les suivantes :

  • compatibilité et base de l'ACS développé par l'OM sur l'ordinateur de l'OM existant ;
  • concentration des outils MO sélectionnés sur les tâches du système de contrôle automatisé ;
  • variété suffisante d'outils de programmation d'automatisation ;
  • la capacité d'apporter efficacement des modifications aux programmes de travail ;
  • la possibilité d'une description sans ambiguïté et complète des algorithmes ;
  • la capacité d'optimiser le fonctionnement des programmes privés ;
  • modularité de la construction du programme.

MO ACS sert à fournir à l'utilisateur une large gamme de services technologiques de programmation. Elle peut être divisée en deux parties : l'élaboration des programmes de contrôle et l'élaboration des programmes de traitement.

Programmes de contrôle effectuer le chargement initial de la RAM des machines et le contrôle du fonctionnement du système de contrôle automatisé, y compris le traitement des interruptions, la répartition du travail des canaux, le chargement des programmes de la bibliothèque dans la RAM. Les programmes de contrôle permettent un fonctionnement multi-programmes et communiquent avec l'opérateur.

Programmes de traitement inclure un système d'automatisation de la programmation et des programmes de service.

Programmation des fonctions du système d'automatisation les éléments suivants : enregistrer des programmes dans des langages de programmation d'entrée ; traduction de programmes dans le langage interne de l'ordinateur; combiner (assembler) les configurations (segments) requises à partir de sous-programmes standard ; programmes de débogage au niveau des langues d'entrée ; ajustement des programmes au niveau des langues d'entrée.

Les tâches principales des programmes de service sont les suivantes : enregistrer les programmes dans la bibliothèque ; exclusion de programmes de la bibliothèque ; réécriture de programmes d'un support magnétique à un autre, impression et sortie de programmes sur support perforé ; appeler les programmes nécessaires dans la RAM pendant le fonctionnement et le configurer à son emplacement.

Les principaux composants de MO ACS sont un programme de répartition du système et une bibliothèque de sous-programmes standard et de programmes standard conçus pour traiter les informations de production et économiques.

Programme de répartition du système assure le fonctionnement des systèmes de contrôle automatisés selon le mode déterminé par les activités de production, économiques ou administratives.

Bibliothèque de routines standards, disponible dans l'ordinateur MO constitue une étape transitoire vers le développement d'une bibliothèque système axée sur les processus de traitement de l'information dans les systèmes de contrôle automatisés. Bibliothèque système doit contenir:

programmes pour saisir et convertir des documents et autres sources écrites de données initiales sous forme informatique;

programmes d'organisation de baies informatiques, caractérisés à la fois par de grands volumes et par la complexité de leur structure, pour une recherche et une extraction efficaces des données requises des baies ;

des programmes pour convertir les données sous la forme la plus acceptable pour les humains (sous forme de graphiques, de diagrammes, d'images) et les transmettre à des appareils externes.

Langages de programmation

Langage de programmation sont appelés systèmes de signes utilisés pour décrire les processus de résolution de problèmes sur un ordinateur. De par leur nature, les langages de programmation sont divisés en trois groupes :

  1. langages algorithmiques formels ;
  2. langages de programmation formels non algorithmiques ;
  3. les systèmes de signes pas complètement formalisés utilisés dans la programmation.

Langages de programmation formels. Ce groupe de langages comprend : les langages algorithmiques des machines et des systèmes d'exploitation ; langages algorithmiques orientés machine ; langages algorithmiques orientés problèmes ; langages algorithmiques universels indépendants de la machine.

Langues du système d'exploitation sont appelés langages algorithmiques perçus par des complexes formés d'ordinateurs et d'un programme répartiteur développé pour eux (parfois aussi appelé superviseur).

La composition de programmes directement manuellement dans le langage d'une machine ou d'un système d'exploitation n'est actuellement pas utilisée, car elle nécessite que le programmeur se souvienne d'un grand nombre de détails, sans lesquels il est impossible de construire un programme à partir de commandes.

Langages algorithmiques orientés machine contenir des moyens expressifs qui permettent d'indiquer dans l'enregistrement de l'algorithme à l'aide de quels moyens techniques certaines parties de celui-ci doivent être exécutées et comment les périphériques de stockage doivent être utilisés. Les langages de programmation orientés machine incluent les autocodes et certains langages dont les capacités sont proches des langages algorithmiques universels, par exemple ALMO.

Langages algorithmiques orientés problèmes Il s'agit de langages spécialement conçus pour décrire les processus de résolution de problèmes d'une certaine classe étroite, par exemple des problèmes d'algèbre linéaire, de statistiques, de problèmes de traitement de données, etc. En particulier, COBOL appartient aux langages orientés problèmes.

Langages algorithmiques universels indépendants de la machine adapté à la création d'algorithmes pour résoudre des problèmes de classes très larges. Ces langages incluent ALGOL, FORTRAN, PL/1 déjà mentionnés.

Parmi les langages algorithmiques universels indépendants de la machine, l’exception est YAL. Le but de ce langage ne se limite pas à être un langage de programmation. YALS est utilisé comme première étape de description des algorithmes lors de la programmation en langage machine ou en langage ASSEMBLY (méthode de programmation opérateur ; un algorithme écrit en YALS est traduit manuellement en langage machine ou en langage ASSEMBLY).

Le tableau ci-dessous fournit des données comparatives entre les langages de programmation formels.

Systèmes de signalisation pas complètement formalisés. Ces langages sont généralement utilisés dans la programmation manuelle ou dans la phase préliminaire manuelle de la programmation assistée par ordinateur. Un exemple de ceci est un organigramme de programme. Un organigramme de programme est une description élargie du programme, dans laquelle ses parties individuelles sont représentées sous forme de « blocs » (rectangles, losanges, cercles, etc.), dans lesquels le contenu de ces parties est indiqué en langage naturel ( par exemple, en russe). La connexion entre les blocs (parties du programme) est représentée à l'aide de lignes indiquant le transfert de contrôle. Les lignes peuvent être étiquetées pour indiquer les conditions dans lesquelles le transfert de contrôle se produit. Les organigrammes sont similaires aux algorithmes écrits en LLS utilisant des opérateurs généralisés, mais en diffèrent en ce que la signification des blocs est indiquée dans un langage naturel et informel, tandis que dans LLS, les opérateurs généralisés reçoivent un décodage dans un langage formel exact.

Actuellement, plus de 2000 langages algorithmiques différents et plus de 700 domaines d'application sont connus pour résoudre les problèmes correspondants sur un ordinateur.

Il existe des langages de programmation des niveaux suivants :

    langage de niveau zéro ou inférieur - code machine ;

    langage de premier niveau - code mnémonique, ou langage de codage symbolique ;

    langage de deuxième niveau - autocode (macrocode) ;

    langues du troisième niveau (supérieur) - langues orientées problèmes.

Il est conseillé d'utiliser des systèmes de contrôle automatisés comme langages de saisie, selon le type de tâches. langages orientés problèmes divers types

Données comparatives des langages de programmation algorithmiques formels

Classe de langages de programmation algorithmique

Comptabilisation des fonctionnalités de l'ordinateur

Caractéristiques d'une classe de problèmes

Méthode de programmation

Évaluation conditionnelle de la qualité du programme

Langages machines

Langages orientés machine

Partiel

Déterminé par les caractéristiques de l'ordinateur

automatique

Satisfaisant

Langages orientés problèmes

Mineure

automatique

Satisfaisant

Langages universels indépendants de la machine

Absent ou très mineur

Très étendu

automatique

Faible

(par exemple, pour l'analyse - ALGOL, FORTRAN, etc., pour les problèmes économiques - ALGEK, etc., pour les problèmes d'information - COBOL, SINTHOL, etc.).

Examinons quelques-uns des langages de programmation algorithmique.

ALGOL-60. Le nom de la langue vient des mots anglais Algorithmic Language. Il a été développé par un groupe de scientifiques de différents pays en 1960 et s’est largement répandu. Les raisons de son succès résident dans sa proximité avec le langage mathématique ordinaire, la commodité de décrire une large classe de problèmes, l'universalité et l'indépendance totale par rapport à un ordinateur spécifique, ainsi que la stricte formalisation du langage depuis l'alphabet jusqu'aux constructions les plus complexes.

ALGOL-60 est non seulement un langage de programmation universel, mais aussi un langage international de description d'algorithmes.

La base de l'écriture des algorithmes dans le langage ALGOL-60 est une séquence d'opérateurs séparés par le symbole « ; ». Cette séquence d'opérateurs, qui sont des actions uniques dans le langage, est accompagnée d'une séquence de descriptions qui donnent au traducteur des informations sur les propriétés nécessaires utilisées dans les opérateurs. Les descriptions, par exemple, fournissent des informations sur les classes de nombres utilisées comme valeurs de variables, la taille des tableaux de nombres, etc. Une telle combinaison de descriptions et d'opérateurs dans ce langage est appelée un bloc.

Un programme en langage ALGOL-60 est un bloc, ou une instruction composée, qui ne contient pas d'autre instruction à l'intérieur et n'utilise pas d'autre instruction qui n'y est pas contenue.

Les centres informatiques où la programmation est effectuée en ALGOL devraient accumuler de l'expérience non pas sous la forme de programmes ALGOL complets, mais sous la forme de descriptions de procédures. Cela est dû au fait qu'il est presque impossible d'inclure des programmes ALGOL prêts à l'emploi dans de nouveaux programmes, alors que les descriptions de procédures sont spécialement conçues à cet effet.

En URSS, l'ALGOL-60 s'est répandu sous la forme de certaines de ses variantes.

FORTRAN. Le mot FORTRAN est formé de deux mots anglais (Formula Translator). L'une des caractéristiques les plus importantes du langage FORTRAN est qu'il est relativement affranchi des spécificités d'un ordinateur particulier. FORTRAN est un langage de programmation indépendant de la machine.

De vastes bibliothèques de logiciels mathématiques ont été accumulées dans ce langage, comprenant à la fois des programmes standard (fréquemment utilisés) et de nombreux programmes spéciaux utilisés pour résoudre des problèmes spécifiques.

L'introduction généralisée du FORTRAN dans la pratique de la programmation est due à ses qualités, dont il convient de noter, en premier lieu, sa simplicité par rapport à d'autres langages algorithmiques (par exemple, ALGOL) ; deuxièmement, en raison de l'absence de structures trop complexes, les programmes traduits sont plus efficaces que les programmes écrits dans d'autres langues ; en même temps, FORTRAN convient à la programmation de la plupart des algorithmes de calcul ;

troisièmement, FORTRAN dispose de moyens très puissants pour connecter une personne à une machine : les informations produites par l'ordinateur sont présentées sous une forme familière aux scientifiques et aux ingénieurs. Et enfin, quatrièmement, FORTRAN est bien adapté à l'utilisation efficace de périphériques informatiques externes.

L'algorithme de résolution du problème, écrit en FORTRAN, consiste en une séquence d'opérateurs. Ces opérateurs peuvent être de plusieurs types différents. Pris ensemble, les opérateurs qui définissent l'algorithme de résolution du problème constituent le programme original. Une fois le programme source écrit et perforé sur des cartes perforées, il est converti à l'aide d'un traducteur FORTRAN en un programme de travail.

La première instruction est l'instruction d'en-tête, qui a la forme || PROGRAMa ||, où a est le nom du programme et le dernier est l'opérateur de fin (opérateur || END ||) et un ensemble de sous-programmes. Le programme principal et chaque sous-programme localisent les étiquettes des opérateurs, ainsi que les noms des variables, tableaux et autres quantités, permettant ainsi d'utiliser les mêmes étiquettes et identifiants dans différents sous-programmes et dans le programme principal. La communication entre le programme principal et les sous-programmes s'effectue à l'aide d'instructions d'accès appropriées.

Lors de la composition de programmes en FORTRAN, il est recommandé de respecter l'ordre des opérateurs suivant : 1) opérateur-en-tête du programme principal (sous-programme) ; 2) opérateur de description de fichier ; 3) opérateur de définition de type implicite ; 4) opérateur de type explicite, opérateur de dimensionnement, opérateur de zone générale ; 5) opérateur pour spécifier l'équivalence ; 6) fonction de l'opérateur, procédure de l'opérateur ; 7) opérateur de réglage du format, opérateurs exécutables (inconditionnel, conditionnel, entrée, sortie) ; 8) opérateur final.

COBOL. Le nom de la langue vient des mots anglais Common Business Oriented Language. COBOL est un langage algorithmique orienté problème conçu pour décrire les processus de résolution de problèmes et de traitement des données. COBOL est actuellement le seul langage de haut niveau largement utilisé pour programmer des problèmes économiques. Sa grande popularité s'explique par le fait que le COBOL est assez proche du langage naturel dans lequel les problèmes économiques sont habituellement formulés et résolus.

Les particularités du langage COBOL sont les suivantes :

la langue est en un sens un sous-ensemble de la langue anglaise ; le texte écrit en COBOL peut être compris sans préparation préalable ;

le langage décrit bien les données avec une structure typique des documents commerciaux ; ces données peuvent concerner des affaires personnelles, des biens, des finances (les données combinées sont également autorisées) ;

le langage tente de résoudre le problème de la compatibilité totale, c'est-à-dire de l'indépendance par rapport aux spécificités d'ordinateurs spécifiques.

Un programme COBOL se compose de quatre parties appelées sections. Ces sections portent les noms suivants : section d'identification, section d'équipement, section de données et section de procédures. La section des procédures contient le programme lui-même, mais elle n'a aucun sens (ou au mieux, elle est incomplètement définie) à moins que la structure des données à traiter, définie dans la troisième section, ne soit connue. La section équipement est à son tour divisée en une section de configuration et une section d'E/S, et la section de données est divisée en une section de tableau, une section de mémoire de travail et une section de constantes. Au début de la section (section) se trouve le nom de la section (section), suivi d'un point ; le nom avec un point occupe une ligne distincte. Le contenu d'une section ou d'une section est constitué de phrases regroupées en paragraphes nommés.

COBOL facilite grandement l'apport de modifications mineures au programme nécessaires au traitement des informations commerciales.

En COBOL, l'unité de base d'entrée et de sortie est le fichier de données. Chaque fichier est constitué d'enregistrements. Le même fichier est souvent utilisé dans différents programmes selon la nature des tâches à résoudre. Les descriptions de fichiers sont très strictes et ne permettent aucune modification.

Les développeurs ont pris en compte la possibilité d'utiliser une machine pour diffuser des programmes et une autre machine pour résoudre le problème en fonction du programme compilé. De plus, le même programme COBOL peut être traduit dans les langues de différents ordinateurs dotés de différents équipements.

SOL. La modélisation numérique en tant que méthode de recherche efficace gagne en popularité parmi les spécialistes impliqués dans l'analyse et la conception de systèmes complexes.

Très souvent, un spécialiste des systèmes éprouve des difficultés à rédiger un programme simulant le fonctionnement du système qu’il étudie. La raison en est peut-être l’extrême complexité des systèmes qui sont presque impossibles à décrire mathématiquement. Les problèmes de ce type abondent, en particulier dans la pratique de création de systèmes d'instrumentation et de contrôle. Pour faciliter la création de programmes, on utilise actuellement des langages de programmation automatique (langages de modélisation spécialisés), qui permettent, avec le moins de temps passé à préparer et à mettre en œuvre des tâches sur un ordinateur, de construire et d'étudier des programmes qui simulent le fonctionnement du système à l’étude.

Dans le même temps, les éléments d'un langage spécialisé sont, en règle générale, assez universels et peuvent être . appliqué à une large classe de phénomènes simulés. De plus, les langages de modélisation spécialisés, par rapport aux langages universels, simplifient considérablement la programmation des opérations informatiques et logiques qui caractérisent le système modélisé. Dans le même temps, la connexion entre le poseur de problèmes et le programmeur est simplifiée. Ceci est réalisé grâce aux fonctionnalités suivantes des langages de modélisation spécialisés :

  • la possibilité de fixer la structure de la répartition de la mémoire machine entre les variables et les paramètres. Cette distribution est plus granulaire et raffinée que celle obtenue en utilisant la plupart des langages à usage général ;
  • la présence d'un ensemble d'instructions qui simplifient le changement d'état du système simulé. Dans la plupart des cas, cela est effectué par un contrôle standard ou un sous-programme temporaire qui contrôle la séquence de mise en œuvre des sous-programmes ;
  • la présence d'un ensemble d'instructions qui déterminent la nécessité de mettre en œuvre un sous-programme particulier à un moment donné ;
  • la présence de commandes pour effectuer des opérations standard ou fréquemment rencontrées liées aux nombres aléatoires et aux distributions de probabilité ;
  • la présence de commandes qui simplifient l'obtention et l'enregistrement d'indicateurs statistiques lors de l'exécution du programme de modélisation.

Examinons quelques langages de modélisation algorithmique spécialisés.

Le langage de modélisation universel GPSS est le plus largement utilisé et est simple et intuitif. Cela ne nécessite aucune connaissance en programmation ou en fonctionnement de la machine. Le programme de simulation est présenté sous forme de schéma fonctionnel, ce qui est particulièrement attrayant pour les non-programmeurs.

Le langage algorithmique SIMSCRIPT est actuellement considéré comme le langage de modélisation le plus puissant. Grâce à un certain nombre de ses caractéristiques uniques, il est applicable à la classe de tâches la plus large. Cependant, ce langage est relativement complexe et les outils de diagnostic destinés au débogage des programmes sont limités. De plus, un utilisateur potentiel de ce langage doit connaître FORTRAN et avoir une expérience en programmation.

L'attention des spécialistes impliqués dans la résolution de problèmes de modélisation est attirée par les langages spécialisés développés à ces fins sur la base d'ALGOL. Parmi ces langages de programmation automatique, les plus avancés sont SIMULA et SOL.

Un exemple de l'un des langages algorithmiques spécialisés les plus performants, conçu pour modéliser des systèmes à évolution discrète, est le langage SOL - Simulation Oriented Language.

Le langage SOL est construit sur la base du langage de programmation universel ALGOL, a la même structure et utilise ses principaux éléments. Pour décrire une large classe de processus à événements discrets, SOL représente un système universel de concepts et est donc à bien des égards très similaire aux langages de programmation automatique orientés problèmes, tels qu'ALGOL ou FORTRAN. Cependant, le langage SOL possède des caractéristiques de base qui le distinguent de ces langages : SOL fournit un mécanisme de modélisation de processus parallèles asynchrones, des notations pratiques pour les éléments aléatoires dans les expressions arithmétiques et des moyens automatiques de collecte de données statistiques sur les composants du système simulé. D'un autre côté, de nombreuses fonctionnalités des langages généralistes orientés problèmes ne sont pas utilisées dans SOL non pas parce qu'elles sont incompatibles avec celui-ci, mais plutôt parce qu'elles introduisent de grandes complications dans sa conception sans étendre ses capacités. Les principes qui sous-tendent la construction du langage et l'écriture de programmes de modélisation permettent de construire des modèles de systèmes complexes sous une forme facile à lire.

PL/je. Le nom du langage vient des mots anglais Programming Language/One.

Le langage PL/I est apparu après la création d’un certain nombre de langages très avancés et, bien entendu, ces langages prédécesseurs ont eu un impact significatif sur sa structure. Ainsi, il conserve la structure de blocs du programme d'ALGOL, la possibilité d'allocation dynamique de mémoire, il existe un appareil d'appel de procédure, une méthode de spécification des formats utilisés en FORTRAN, etc. Mais les nouveautés sont nombreuses. Le langage est pratique pour modéliser, résoudre des problèmes logiques, étudier des circuits logiques, résoudre des problèmes en temps réel et développer des systèmes logiciels. Il est possible d'utiliser différents types de données (binaires, décimales, symboliques, nombres complexes, matrices, etc.), mais il est très difficile d'organiser ces données en tableaux, tableaux, textes, questionnaires, classeurs, etc. Il existe un large éventail de fonctions et de procédures standards. Le langage PL/I a développé un système d'exploitation performant qui contrôle tous les processus d'entrée, de sortie et d'échange d'informations entre les périphériques principaux et de stockage. Toutes ces caractéristiques donnent l’impression d’une langue très encombrée. Il faut aussi garder à l'esprit les inconvénients : la description de la langue n'est pas satisfaisante, elle n'est pas formalisée.

PL/I est un langage de programmation polyvalent destiné non seulement à la programmation économique, scientifique et technique, mais également au travail de programmation en temps réel et à la création de systèmes de programmation.

L'un des principaux objectifs lors du développement du langage était d'atteindre la modularité, c'est-à-dire la possibilité d'utiliser des programmes déjà traduits dans le programme principal en tant que modules séparés sans retraduction. La nécessité d'assurer la plus grande simplicité et facilité d'écriture des programmes a été prise en compte. Dans le même temps, la nécessité d'élaborer des schémas logiques généraux et détaillés des programmes demeure, mais avec une expérience de programmation appropriée en langage PL/I, vous pouvez éviter le travail volumineux et fastidieux associé à l'écriture d'un programme en langage machine.

Dans le langage PL/I, chaque descripteur de variable, chaque construction-ajout de clarification et chaque spécification reçoit une « interprétation (principe) par défaut ». Cela signifie que lorsqu'un langage fournit plusieurs fonctionnalités et que le programmeur n'en a spécifié aucune, le compilateur applique une « interprétation par défaut », c'est-à-dire qu'il assume certaines des fonctionnalités fournies dans le langage pour ce cas. Les capacités impliquées pour chaque construction du langage sont celles dont le programmeur aura probablement besoin.

Les programmes en langage PL/I sont écrits sous forme libre ; Le programmeur peut développer lui-même les formes de programmes d'enregistrement dont il a besoin. Parallèlement, l'accès à tous les moyens du système informatique est assuré.

Les instructions d'un programme écrit en langage PL/I sont regroupées en « blocs ». Les blocs remplissent des fonctions importantes : ils définissent la portée des variables et d'autres noms, de sorte que le même nom dans différents blocs puisse être utilisé à des fins différentes ; ils vous permettent d'allouer des cellules mémoire aux variables uniquement pendant la durée d'exécution d'un bloc donné et de les libérer pour une utilisation à d'autres fins lorsque le bloc cesse de s'exécuter.

RPG. Le langage RPG est conçu pour automatiser la programmation des tâches et le traitement de l'information économique. Le contenu de ces tâches se limite principalement aux processus suivants : la tenue des fichiers (c'est-à-dire l'organisation, le stockage, le réglage et la mise à jour), le tri des fichiers, la compilation et l'impression de divers documents comptables, tels que des listes, des relevés, des tableaux, des résumés, des rapports, etc. En règle générale, les calculs occupent une petite partie du volume total de résolution de problèmes. Pour résoudre de tels problèmes, il est pratique d'utiliser des RPG, en particulier au stade de la compilation et de la publication des rapports. Dans ce cas, on suppose que les fichiers d'entrée utilisés pour préparer les rapports ont été créés et triés par d'autres moyens.

RPG vous permet d'effectuer certains calculs (généralement simples et standards) sur les données d'entrée, de générer un rapport et de l'imprimer. Les données d'entrée peuvent être saisies à partir d'une carte, d'une bande magnétique ou de dispositifs de mémoire à accès direct. En plus de créer un rapport, RPG vous permet de corriger et de mettre à jour les fichiers d'entrée, ainsi que de créer de nouveaux fichiers. RPG dispose d'outils qui vous permettent d'effectuer des opérations avec des tableaux (par exemple, rechercher l'élément de tableau requis et afficher le tableau), ainsi que des outils pour organiser la connexion du programme RPG avec des programmes écrits dans d'autres langages​​et utilisé pour résoudre le même problème.

Une particularité du langage est que le programmeur n'a pas besoin de décrire la séquence d'opérations pour résoudre le problème (l'algorithme du problème), mais doit uniquement décrire sur des formulaires spéciaux les données d'entrée utilisées pour créer le rapport, les calculs effectués sur ces données. , et le format du rapport.

Sur la base de ces informations, le traducteur RPG génère un programme de travail, puis le programme créé traite les fichiers d'entrée et imprime le rapport requis.

La préparation d'un rapport à l'aide de RPG comprend les étapes principales suivantes : définir les données de la tâche et comment les traiter ; établir le programme initial; perforation du programme original; obtenir un programme de travail; l'exécution du programme de travail.

Avant d’écrire un programme pour la tâche à accomplir, il est nécessaire d’en effectuer une analyse. Il est nécessaire de déterminer les données d'entrée, le format et le type des enregistrements de données d'entrée, les champs d'enregistrement utilisés et leur position, la manière dont les données sont traitées, le nombre et le type de totaux à calculer, le format du rapport imprimé et d'autres données de sortie.

Une fois établies les données d’entrée et de sortie de la tâche et la méthode de traitement de celles-ci, il est nécessaire de décrire ces données sur les formulaires RPG appropriés. Il existe plusieurs types de formulaires RPG, chacun étant conçu pour enregistrer des informations spécifiques. Les formulaires de description des données d'entrée répertorient tous les fichiers d'entrée, décrivent la structure et les caractéristiques distinctives de tous les types d'enregistrements dans chaque fichier ainsi que l'emplacement des champs utilisés dans les enregistrements. Le formulaire de calcul indique quel traitement des données d'entrée doit être effectué. Le formulaire de description de sortie décrit le format du rapport requis et des autres fichiers de sortie. Le formulaire de description des fichiers et le formulaire d'informations complémentaires indiquent les caractéristiques des fichiers utilisés dans le programme (entrée, sortie, tableau, etc.). Le programme initial est constitué des informations indiquées sur les formulaires RPG pour résoudre un problème donné.

Après avoir rédigé le programme sur les formulaires appropriés, le texte du programme est perforé sur les fiches.

Pour obtenir un programme fonctionnel, vous devez d'abord traduire le programme source. Pour ce faire, certaines cartes de contrôle sont ajoutées aux cartes du programme source, comme la carte de contrôle du traducteur RG1G et les cartes des opérateurs de contrôle - TASK CONTROL, nécessaires au fonctionnement du traducteur RPG. Après traduction, le module résultant peut être édité à l'aide de l'EDITEUR. À la suite de l'édition, un programme (module de chargement) prêt à être exécuté est obtenu, appelé programme de travail. La compilation et l'édition sont nécessaires pour produire le rapport souhaité.

Le programme de travail peut être exécuté immédiatement après la diffusion et le montage ou à tout autre moment. Le programme de travail lit les fichiers d'entrée de préparation, les traite et produit par conséquent un rapport et d'autres fichiers de sortie.

ALGAMES. Le langage algorithmique ALGAMS s'adresse aux machines de moyenne puissance ; il était basé sur un sous-ensemble du langage ALGOL-60.

Un problème important résolu dans ALGAMS est l’introduction de procédures d’entrée-sortie. ALGAMS a élargi l'ensemble des fonctions standards, il est également possible d'utiliser des sous-programmes de bibliothèque. ALGAMS comprend des outils qui permettent d'indiquer la segmentation possible du programme, ce qu'on appelle les identifiants de pièces, ainsi que des outils qui permettent d'utiliser efficacement la mémoire tampon de l'ordinateur en décrivant certains des tableaux avec des identifiants spéciaux.

Une instruction d'entrée se compose d'un identifiant INPUT suivi d'une liste de paramètres réels, entre parenthèses. Le premier paramètre spécifie le numéro de canal par lequel les données sont saisies, les autres paramètres réels sont des variables simples, des identifiants de tableau ou des variables indexées.

Lors de la saisie de texte, les éléments successifs du tableau à partir de l'objet d'entrée spécifié se voient attribuer des valeurs entières correspondant aux caractères successifs de la chaîne d'entrée au sens de procédure=TEXTE. Procédure = TEXTE est défini comme suit :<оператор текст>::=TEXTE (<строка>, <переменная с индексами>).

L'identifiant de la procédure d'entrée est le mot OUTPUT. L'opérateur a quatre types : l'opérateur numérique, l'opérateur booléen, l'opérateur de texte et l'opérateur de mise en page. Une instruction de sortie consiste en un identifiant OUTPUT suivi d'une liste de paramètres réels, entre parenthèses. Le premier paramètre réel de la procédure spécifie le numéro du canal de sortie, le deuxième paramètre spécifie le format des données de sortie et tous les autres spécifient les objets de sortie. Il existe des outils d'édition lors de l'impression d'informations.

BASIE K. Le nom de la langue vient des mots anglais Beginners all Purpose Symbolic Instructioncode. Il a gagné en popularité en raison de sa simplicité, de sa facilité d'apprentissage et de ses grandes capacités à résoudre une grande variété de problèmes. Dans de nombreux mini-ordinateurs, cette langue est adoptée comme langue parlée principale. Le langage BASIC est un langage de programmation. Il est pratique pour résoudre des problèmes scientifiques et techniques à petite échelle, à la fois en termes de nombre d'opérations effectuées et de quantité de données d'entrée et résultantes. La caractéristique la plus importante du langage est qu’il est adapté pour une mise en œuvre étape par étape. Cela signifie qu'après chaque modification du texte source d'un programme BASIC, il n'est pas possible de retraduire l'intégralité du programme, mais uniquement celles de ses instructions qui ont été modifiées. La possibilité d'implémentation étape par étape du langage BASIC permet de réduire le coût du temps informatique pour la retraduction. Ceci, à son tour, vous permet d'accélérer le cycle de débogage à tel point qu'il devient conseillé de déboguer les programmes BASIC en mode dialogue.

En plus de la possibilité d'accumuler de gros programmes constitués d'opérateurs de langage BASIC renumérotés, des commandes dites directes sont fournies, c'est-à-dire celles qui sont exécutées immédiatement après leur saisie depuis la console du programmeur (à partir d'un télétype). En mode commande directe, non seulement les directives administratives telles que RUN - démarrer l'exécution, LIST - imprimer le texte, SAVE - enregistrer le texte du programme dans la bibliothèque, BYE - terminer la session de travail peuvent être utilisées ; tout opérateur BASIC saisi sans numéro de série est exécuté en mode commande directe. Cela permet notamment d'imprimer et de modifier les valeurs des variables à tout moment pendant l'exécution du programme.

Mot fonctionnel Action à réaliser

IMPRIMER Imprimer le texte du message entre guillemets, ou la valeur d'une expression arithmétique (après l'avoir évaluée), ou les valeurs de variables

SAISIE Entrez les numéros de la console du programmeur et envoyez-les aux variables spécifiées

LET Attribuer une variable à la valeur d'une expression

GO TO Aller à l'exécution de l'opérateur avec le numéro donné

SI Si la condition spécifiée est remplie, alors il est nécessaire d'effectuer l'action spécifiée dans cette instruction, sinon, procéder à l'exécution de l'instruction suivante

DONNÉES Données ; cette instruction n'est pas exécutée. Il décrit un bloc de données de débogage (nombres). La collection de blocs de données de débogage forme un tableau de données de débogage

FIN Fin du programme

Ainsi, le schéma de compilation étape par étape en combinaison avec le mode commande directe vous permet de déboguer efficacement les programmes BASIC en mode dialogue.

Un programme BASIC se compose d'instructions dont chacune commence par un mot de fonction. Le mot de service détermine le type d'opérateur et la nature des actions réalisées lors de son exécution.

Lors de la résolution de nombreux problèmes, il est nécessaire de présenter les données sous forme de tableaux. En utilisant les capacités de certains opérateurs du langage BASIC, vous pouvez générer des tableaux dans différents formats.

Le 21e siècle est une époque où la connaissance de l’information constitue l’avantage concurrentiel le plus important dans tous les domaines. Cependant, il n'apportera aucun avantage s'il n'est pas exprimé dans une langue compréhensible pour ceux à qui il est destiné ou s'il n'existe pas de traducteur capable d'en transmettre le sens au destinataire.

À l'heure actuelle, environ 2 000 personnes vivent sur terre. Leur trait distinctif est avant tout le langage.

Parallèlement aux langues parlées (naturelles), l’humanité a créé de nombreuses langues artificielles. Chacun d’eux est conçu pour résoudre des problèmes spécifiques.

Ces systèmes de signes incluent des langages formels, dont des exemples sont présentés ci-dessous.

Définitions

Tout d’abord, formulons ce qu’est la langue. Ce mot est généralement compris comme un système de signes utilisé pour établir la communication entre les personnes et la cognition.

La base de la plupart des langues artificielles et naturelles est l'alphabet.

C'est un ensemble de symboles utilisés pour composer des mots et des phrases.

La langue se caractérise par :

  • ensemble de signes utilisés ;
  • des règles pour composer des « mots », des « phrases » et des « textes » à partir d'eux ;
  • un ensemble de règles (syntaxiques, pragmatiques et sémantiques) pour l'utilisation de constructions composées.

Caractéristiques des langues naturelles

Comme déjà mentionné, toutes les langues sont classiquement divisées en langues artificielles et naturelles. Il existe de nombreuses différences entre eux.

Les langues naturelles comprennent les langues parlées. Leurs caractéristiques comprennent, entre autres :

  • ambiguïté de la plupart des mots ;
  • l'existence de synonymes et d'homonymes ;
  • la présence de plusieurs noms pour un même article ;
  • il existe des exceptions à presque toutes les règles.

Toutes ces caractéristiques constituent les principales différences entre les systèmes de signes naturels et les langages formels. Des exemples d'ambiguïtés dans les mots et les déclarations sont connus de tous. Ainsi, le mot « éther », selon le contexte, peut désigner à la fois une substance et une émission de radio ou de télévision.

Les principales fonctions des langues parlées sont :

  • communication;
  • activité cognitive;
  • expression d'émotions;
  • impact sur l'interlocuteur (correspondant, si l'on parle de correspondance).

Caractéristiques des langages artificiels

Les langages artificiels sont créés par des personnes à des fins spéciales ou pour des groupes spécifiques de personnes.

L'une des principales caractéristiques des langues artificielles est la définition sans ambiguïté de leur vocabulaire, ainsi que les règles permettant de leur attribuer des significations et de former des expressions.

Langues formelles et grammaires

Une langue, qu’elle soit naturelle ou artificielle, ne peut exister que si elle répond à un ensemble de règles précises. Dans le même temps, un affichage cohérent, compact et précis des relations et des propriétés du domaine étudié doit être assuré. S’ils sont strictement formulés, alors ils disent que c’est une langue. Des exemples de tels systèmes de signes sont les langages de programmation, même si, à proprement parler, ils occupent plutôt une certaine position intermédiaire (voir ci-dessous).

Le schéma de construction d'un système de signalisation formel est le suivant :

  • un alphabet (un ensemble de caractères initiaux) est sélectionné ;
  • les règles de construction des expressions (syntaxe) du langage sont précisées.

Champ d'application

Logique formelle, programmation, etc.) sont utilisés dans le processus de recherche scientifique. Ils sont meilleurs que les naturels pour présenter les connaissances et constituent un moyen d'échange d'informations plus objectifs et plus précis.

Les langages formels comprennent tous les systèmes connus de symboles mathématiques et chimiques, le code Morse, la notation musicale, etc.

De plus, les langages de programmation formels sont largement utilisés. Leur développement rapide a commencé au milieu du XXe siècle, en lien avec l’avènement de la technologie informatique.

Langage de la logique formelle

La base de tout langage de programmation est mathématique. Elle s’appuie à son tour sur le système de signes de la logique formelle.

En tant que science, la logique a été créée par Aristote. Il a également développé des règles de transformation des énoncés qui préservent leur valeur de vérité quel que soit le contenu des concepts inclus dans ces énoncés.

La logique formelle lutte contre les « inconvénients » des langues naturelles associés à l'ambiguïté de certains énoncés, etc. A cet effet, les opérations avec les pensées sont remplacées par des actions avec les signes d'un langage formel. Cela élimine toute incertitude et vous permet d'établir avec précision la véracité de la déclaration.

Caractéristiques des langages de programmation

Comme déjà mentionné, avec quelques réserves, ils peuvent être qualifiés de formels.

Ils sont unis à ces derniers par de nombreuses règles syntaxiques, et aux règles naturelles par quelques mots-clés et constructions.

La création d'un langage de programmation nécessite de définir l'ensemble des symboles valides et des programmes de langage corrects ainsi que la signification de chaque programme correct. Si la première tâche peut être traitée par la formalisation, dans le cas de la seconde, ces approches ne fonctionnent pas.

De nombreux caractères valides dans les langages de programmation sont des caractères pouvant être saisis au clavier. Ils représentent la première partie de la table de codage ASCII.

Grammairiens

Les langages de programmation, comme tous les autres, ont une grammaire. Ce terme fait référence à une description de la méthode de composition des phrases. Les grammaires sont décrites de différentes manières. Dans le cas des langages de programmation, ce sont des règles spécifiées par des paires ordonnées de chaînes de deux types de symboles : celles définissant les constructions syntaxiques et les restrictions sémantiques. Lors de la définition des grammaires, ils énoncent d'abord formellement les règles de construction des constructions syntaxiques, puis définissent les règles sémantiques dans l'une des langues naturelles.

Les règles sont enregistrées sous forme graphique à l'aide de diagrammes spéciaux. Initialement, cette approche a été utilisée lors de la création du langage Pascal. Cependant, il a ensuite commencé à être largement utilisé dans d'autres.

Classification des langages de programmation

Il en existe actuellement plusieurs milliers, ainsi que des « dialectes ». Ils sont classés comme procéduraux et déclaratifs. Dans les langages du premier type, la transformation des données est spécifiée en décrivant la séquence d'actions effectuées sur celles-ci, tandis que dans le second - les relations. Il existe d'autres classements. Par exemple, les langages de programmation sont divisés en langages fonctionnels, procéduraux, orientés objet et logiques. Si l’on aborde la question de manière stricte, aucune classification ne peut être objective. Après tout, une partie importante des langages de programmation possède les capacités de systèmes formels de plusieurs types à la fois. Au fil du temps, les contours deviendront probablement encore plus flous.

Vous pouvez désormais répondre à la question : « Quels langages formels connaissez-vous ? Les scientifiques continuent de les améliorer afin de permettre de résoudre divers problèmes pratiques et théoriques actuellement considérés comme insolubles.

La programmation est toute une science qui permet de créer des programmes informatiques. Il comprend un grand nombre d'opérations et d'algorithmes différents qui forment un seul langage de programmation. Alors, de quoi s’agit-il et quels sont les différents langages de programmation ? L'article fournit des réponses et fournit également une liste générale des langages de programmation.

L'histoire de l'émergence et des changements des langages de programme doit être étudiée parallèlement à l'histoire du développement des technologies informatiques, car ces concepts sont directement liés les uns aux autres. Sans langages de programmation, il serait impossible de créer un programme permettant à un ordinateur de fonctionner, ce qui signifie que créer des ordinateurs deviendrait un exercice inutile.

Le premier langage machine a été inventé en 1941 par Konrad Zuse, inventeur du moteur analytique. Un peu plus tard, en 1943, Howard Aiken créa la machine Mark 1, capable de lire des instructions au niveau du code machine.

Dans les années 1950, la demande de développement de logiciels a commencé et le langage machine ne pouvait pas gérer de grandes quantités de code. Une nouvelle façon de communiquer avec les ordinateurs a donc été créée. "Assembleur" est le premier langage mnémonique à remplacer les instructions machine. Au fil des années, la liste des langages de programmation ne fait que s'allonger, car le champ de la technologie informatique s'élargit.

Classification des langages de programmation

Il existe actuellement plus de 300 langages de programmation. Chacun d'eux a ses propres caractéristiques et convient à une tâche spécifique. Tous les langages de programmation peuvent être divisés en plusieurs groupes :

  • Orienté aspect (l'idée principale est la séparation des fonctionnalités pour augmenter l'efficacité des modules logiciels).
  • Structurel (basé sur l'idée de créer une structure hiérarchique de blocs de programme individuels).
  • Logique (basé sur la théorie de l'appareil de logique mathématique et les règles de résolution).
  • Orienté objet (dans une telle programmation, ce ne sont plus des algorithmes qui sont utilisés, mais des objets appartenant à une certaine classe).
  • Multi-paradigme (combinez plusieurs paradigmes, et le programmeur décide lui-même quel langage utiliser dans un cas donné).
  • Fonctionnel (les principaux éléments sont des fonctions qui changent de valeur en fonction des résultats des calculs des données sources).

Programmation pour les débutants

Beaucoup de gens se demandent ce qu’est la programmation ? Il s'agit essentiellement d'un moyen de communiquer avec un ordinateur. Grâce aux langages de programmation, nous pouvons attribuer des tâches spécifiques à différents appareils en créant des applications ou des programmes spéciaux. Lorsque vous étudiez cette science au stade initial, le plus important est de choisir des langages de programmation appropriés (intéressants pour vous). Une liste pour les débutants est donnée ci-dessous :

  • Basic a été inventé en 1964, appartient à la famille des langages de haut niveau et est utilisé pour écrire des programmes d'application.
  • Python est assez facile à apprendre en raison de sa syntaxe simple et lisible, mais l'avantage est qu'il peut être utilisé pour créer à la fois des programmes de bureau classiques et des applications Web.
  • Pascal est l'une des langues les plus anciennes (1969) créées pour enseigner aux étudiants. Sa modification moderne est strictement typée et structurée, mais Pascal est un langage tout à fait logique et compréhensible à un niveau intuitif.

Ce n'est pas une liste complète des langages de programmation pour les débutants. Il existe un grand nombre de syntaxes faciles à comprendre et qui seront certainement demandées dans les années à venir. Chacun a le droit de choisir indépendamment la direction qui l'intéressera.

Les débutants ont la possibilité d’accélérer leur apprentissage de la programmation et de ses fondamentaux grâce à des outils spécifiques. L'assistant principal est l'environnement de développement intégré de programmes et d'applications Visual Basic (« Visual Basic » est également un langage de programmation qui a hérité du style du langage Basic des années 1970).

Niveaux de langages de programmation

Tous les langages formalisés destinés à créer, décrire des programmes et des algorithmes pour résoudre des problèmes sur ordinateurs sont divisés en deux catégories principales : les langages de programmation de bas niveau (la liste est donnée ci-dessous) et de haut niveau. Parlons de chacun d'eux séparément.

Les langages de bas niveau sont conçus pour créer des instructions machine pour les processeurs. Leur principal avantage est qu’ils utilisent des notations mnémoniques, c’est-à-dire qu’au lieu d’une séquence de zéros et de uns (du système de nombres binaires), l’ordinateur se souvient d’un mot abrégé significatif de la langue anglaise. Les langages de bas niveau les plus connus sont « Assembleur » (il existe plusieurs sous-types de ce langage, dont chacun a beaucoup en commun, mais ne diffère que par un ensemble de directives et de macros supplémentaires), CIL (disponible dans le .Net plate-forme) et JAVA Bytecode.

Langages de programmation de haut niveau : liste

Les langages de haut niveau sont créés pour plus de commodité et une plus grande efficacité des applications, ils sont exactement le contraire des langages de bas niveau. Leur particularité est la présence de constructions sémantiques qui décrivent de manière succincte et concise les structures et les algorithmes des programmes. Dans les langages de bas niveau, leur description en code machine serait trop longue et incompréhensible. Les langages de haut niveau sont indépendants de la plateforme. Au lieu de cela, les compilateurs remplissent la fonction de traducteur : ils traduisent le texte du programme en instructions machine élémentaires.

La liste suivante de langages de programmation : C ("C"), C# ("C-sharp"), "Fortran", "Pascal", Java ("Java") - fait partie des syntaxes de haut niveau les plus utilisées. Il possède les propriétés suivantes : ces langages fonctionnent avec des structures complexes, prennent en charge les types de données de chaîne et les opérations avec les informations d'E/S de fichier, et ont également l'avantage d'être beaucoup plus faciles à utiliser en raison de leur lisibilité et de leur syntaxe compréhensible.

Langages de programmation les plus utilisés

En principe, vous pouvez écrire un programme dans n’importe quelle langue. La question est : fonctionnera-t-il efficacement et sans échec ? C'est pourquoi vous devez choisir les langages de programmation les plus adaptés pour résoudre divers problèmes. La liste par popularité peut être décrite comme suit :

  • Langages POO : Java, C++, Python, PHP, VisualBasic et JavaScript ;
  • groupe de langages structurels : Basic, Fortran et Pascal ;
  • multi-paradigme : C#, Delphi, Curry et Scala.

Portée des programmes et des applications

Le choix de la langue dans laquelle un programme particulier est écrit dépend en grande partie du domaine de son application. Ainsi, par exemple, pour travailler avec le matériel informatique lui-même (écrire des pilotes et des programmes de support), la meilleure option serait C (« C ») ou C++, qui sont inclus dans les principaux langages de programmation (voir la liste ci-dessus). . Et pour développer des applications mobiles, notamment des jeux, il faut choisir Java ou C# (« C-sharp »).

Si vous n'avez pas encore décidé dans quelle direction travailler, nous vous recommandons de commencer à étudier avec le C ou le C++. Ils ont une syntaxe très claire et une division structurelle claire en classes et fonctions. De plus, connaissant le C ou le C++, vous pouvez facilement apprendre n’importe quel autre langage de programmation.