Terminologie - le code source est-il un programme? [fermé]

10

Je suis un débutant en programmation et je n'ai pas une bonne maîtrise de la terminologie. Je voudrais savoir si le code source écrit dans un langage compilé comme C ou C ++ est considéré comme un programme? Sinon, quelqu'un peut-il expliquer pourquoi?

Othman
la source
1
Oui, le code source est considéré comme un programme. Les programmes peuvent être distingués par le type de code qu'ils contiennent, comme dans "code source", "code objet", "code machine" et "code exécutable".
Robert Harvey
6
Cette question me frappe de la même manière "Le boeuf est-il une vache?" serait, pour à peu près toutes les mêmes raisons.
RM
1
La farine et le sucre sont-ils un gâteau?
Bryan Oakley du

Réponses:

16

Voir l'entrée Wikipedia pour le programme : (j'ai ajouté le gras )

Un programme informatique est un ensemble d'instructions qui exécute une tâche spécifique lorsqu'il est exécuté par un ordinateur. Un ordinateur a besoin de programmes pour fonctionner et exécute généralement les instructions du programme dans une unité centrale de traitement.

Un programme informatique est généralement écrit par un programmeur informatique dans un langage de programmation. À partir du programme sous sa forme lisible par l'homme de code source , un compilateur peut dériver le code machine - une forme composée d'instructions que l'ordinateur peut exécuter directement

Ainsi, le "programme" est l'ensemble d'instructions que l'ordinateur exécute, et le "code source" est la version lisible par l'homme de ces instructions.

Dan Pichelman
la source
1
Merci pour votre réponse. Si je comprends bien, le code source est un programme car il définit une suite d'instructions qui exécute une tâche lorsqu'elles sont exécutées par un ordinateur. Mais même si ces instructions ne sont pas celles qui sont exécutées par la CPU à la fin, la CPU exécute des instructions qui sont les traductions des instructions définies dans un langage de haut niveau?
Othman
7

Je voudrais savoir si le code source écrit dans un langage compilé comme C ou CPP est considéré comme un programme?

Oui, ça l'est.

MAIS

Le danger avec cette ligne de pensée arrive: "l'ordinateur exécute mon programme, j'écris mon programme en [par exemple] C, ergo que le code source est des instructions à l'ordinateur".

Et c'est ce que trop d'entre nous ont pensé pendant trop de décennies au 20e siècle. Ce que nous avons appris au cours de la dernière décennie, c'est que les autres programmeurs sont le principal public du code source . Alors oui, cette source est le programme, de la même manière que vous obtiendrez un programme au théâtre, qui dit aux autres ce qui se passe. La beauté du code source est que ce n'est pas seulement le programme, c'est aussi un ensemble d'instructions pour l'ordinateur aussi ...

David Arno
la source
1

Que ce soit ou non, cela dépend du contexte. Pensez-y de cette façon. J'oublie quel est le nom officiel du concept, mais il y a une théorie du langage qui dit que les mots ont un sens qui décrivent non pas ce que quelque chose est, mais ce qu'il n'est pas . Une pomme rouge n'est pas rouge parce qu'elle est, eh bien, rouge, mais parce qu'elle n'est pas bleue, pas verte, etc.

Donc, quand nous pensons à ce concept, nous pouvons comparer notre code source à un plan directeur d'une maison. Si vous regardez le plan d'une pile d'autres plans et demandez "est-ce une maison", et les autres plans sont pour des bâtiments commerciaux, des ponts, etc., la réponse serait oui. Parce que le plan ne représente pas toutes ces autres choses, et l'aspect maison est ce qui le distingue des autres plans.

Cependant, de toute évidence, le plan d'une maison n'est pas la même chose qu'une maison réelle en bois et en cloisons sèches dans laquelle vous pouvez vous tenir. Il existe des contextes où la différence entre le plan et la maison réelle est significative. Il y a une différence entre le plan et le livrable.

De la même manière que le code source d'un programme dans un langage compilé est comme le plan directeur, si vous le comparez à des bibliothèques, des modules du noyau, etc., alors le code source et le programme sont conceptuellement les mêmes. Mais si vous regardez comment le logiciel est compilé, conçu et déployé, les deux ne sont pas les mêmes. Encore une fois, il y a une différence entre le plan et le livrable.

tl; dr: Parfois, ce que quelque chose est, et ce qu'il représente, est considéré comme la même chose, mais d'autres fois non.

comment s'appelle-t-il
la source
0

Le code source est un terme général pour les lignes de code originales (créées par des humains). D'autres types de code qui ne sont pas sources peuvent être créés par traduction ou par un autre programme.

La propriété intellectuelle est encore plus large et peut inclure à la fois du code source et d'autres codes ou données.

Un programme se distingue des autres codes (source ou autre) dans son intégralité. Un programme est un code suffisamment complet pour pouvoir être exécuté (ou destiné à être exécuté). Tout le code (source ou autre) n'est pas suffisamment complet pour être exécuté. Les bibliothèques, par exemple, sont destinées à être combinées et utilisées par d'autres codes, et ne sont donc généralement pas considérées comme un programme car elles ne peuvent pas (ne sont pas censées être) exécutées.

Cette exhaustivité signifie parfois avoir un main, qui est utilisé par un système d'exploitation comme point d'entrée pour le programme

D'une manière générale, lorsqu'un programme est en cours d'exécution, cela s'appelle un processus.

Erik Eidt
la source
1
Veuillez ne pas mentionner la "propriété intellectuelle" car c'est un terme destiné intentionnellement à semer la confusion chez les gens.
whatsisname
0

Le code source est la forme préférée du logiciel sur lequel les développeurs de logiciels humains travaillent . L'idée est que le développement de logiciels est un processus social, donc le code source est une notion sociale . Vous écrivez du code source principalement pour les humains (vos collègues développeurs, ou même vous-même travaillant en quelques mois sur le même programme), pas pour les ordinateurs. Pour un programme codé en C, ce sont souvent (mais pas toujours) des .cfichiers C et des fichiers d'en- .htête, mais le Makefile est aussi du code source. Mais parfois, des techniques de métaprogrammation sont utilisées: un programme génère du code C, puis l' entréeà ce générateur est considéré comme du code source (même si la sortie de ce générateur est du code C). Deux exemples: vous pouvez utiliser un générateur d'analyseur (comme GNU bison ) pour analyser des problèmes, puis le .yfichier d' entrée de ce générateur est du code source. Ou vous pourriez écrire un petit awk ou gawk script pour extraire de certaines sqlite base de données des données qui seraient par exemple transformées en une grande enum déclaration dans certains en- tête généré; alors cette base de données contiendrait du code source!

Un programme informatique est en revanche lié à l'ordinateur qui l'exécute. Il est généralement obtenu en compilant du code source (écrit dans un langage de programmation , et ce sont des spécifications écrites en anglais dans des documents techniques - voir le projet n1570 pour C11 -, pas des outils logiciels!) Dans un exécutable binaire .

Lisez aussi les logiciels libres . Plongez dans le code source des projets de logiciels libres existants (voir github ou sourceforge pour en trouver).

Basile Starynkevitch
la source