5.3. Introduction à la programmation

Un programme est un ensemble d'instructions qui disent à l'ordinateur de faire diverses choses; quelques fois, l'instruction qu'il a à exécuter dépend de ce qui s'est passé lors de l'exécution d'une instruction précédente. Cette section donne un aperçu des deux manières par lesquelles vous pouvez donner ces instructions, ou « commandes » comme elles sont habituellement nommées. Une façon utilise un interpréteur, l'autre un compilateur. Comme les langages humains sont trop difficiles à comprendre sans ambiguïté par un ordinateur, les commandes sont habituellement écrites dans un langage ou un autre spécialement conçus pour cet usage.

5.3.1. Les interpréteurs

Avec un interpréteur, le langage va avec un environnement où vous entrez des commandes à un invite de commandes et l'environnement les exécute pour vous. Pour des programmes plus compliqués, vous pouvez entrer les commandes dans un fichier et demander à l'interpréteur de charger le fichier et d'exécuter les commandes qui sont à l'intérieur. Si quoique ce soit se passe mal, beaucoup d'interpréteurs vous enverrons dans un dévermineur pour vous aider à débusquer le problème.

L'avantage de cela est que vous pouvez voir les résultats de vos commandes immédiatement, et les erreurs peuvent être corrigées facilement. Le plus gros désavantage arrive quand vous voulez partager vos programmes avec d'autres personnes. Ils doivent avoir le même interpréteur ou bien vous devez avoir un moyen de leur donner, et ils doivent comprendre comment l'utiliser. Par ailleurs, les utilisateurs pourraient ne pas apprécier d'être renvoyés dans un dévermineur s'ils ont appuyé sur la mauvaise touche ! D'un point de vue performance, les interpréteurs peuvent utiliser beaucoup de mémoire et généralement ne génèrent pas un code aussi efficace que les compilateurs.

A mon avis, les langages interprétés sont le meilleur moyen pour démarrer si vous n'avez jamais programmé. Ce genre d'environnement se trouve typiquement avec des langages comme Lisp, Smalltalk, Perl et Basic. Il peut aussi être dit que l'interpréteur de commandes Unix (sh, csh) est lui-même un interpréteur, et beaucoup de gens écrivent en fait des « scripts » (procédures) pour l'interpréteur pour les aider dans diverses tâches « domestiques » sur leur machine. En effet, une partie de la philosophie d'origine d'Unix était de fournir plein de petits programmes utilitaires qui pouvaient être liés ensemble dans des procédures pour effectuer des tâches utiles.

5.3.2. Les interpréteurs disponibles avec FreeBSD

Voici la liste des interpréteurs qui sont disponibles sous la forme de logiciels pré-compilés pour FreeBSD, avec une brève description de quelques uns des langages interprétés les plus populaires.

Pour obtenir un de ces logiciels pré-compilés, tout ce que vous avez à faire est de cliquer sur le lien du logiciel et d'exécuter

# pkg_add nom du logiciel
      

en tant que super-utilisateur. Evidemment, vous aurez besoin d'un FreeBSD 2.1.0 ou plus en état de marche pour que le logiciel fonctionne !

BASIC

Abbréviation de "Beginner's All-purpose Symbolic Instruction Code" (code d'instruction symbolique tout usage pour le débutant). Développé dans les années 50 pour apprendre aux étudiants d'université à programmer et fourni avec tout ordinateur qui se respecte dans les années 80, BASIC a été le premier langage de programmation pour beaucoup de programmeurs. Il est aussi le fondement même du Visual Basic.

L'interpréteur Basic Bywater et l'interpréteur Basic de Phil Cockroft (anciennement Rabbit Basic) sont disponibles pour FreeBSD sous forme de logiciels pré-compilés

Lisp

Un langage qui a été développé à la fin des années 50 comme une alternative aux langages « dévoreurs de calculs » qui étaient très populaires à l'époque. Plutôt qu'être basé sur les nombres, Lisp est basé sur les listes; en fait le nom est l'abbréviation de « List Processing ». Très populaire en IA (Intelligence Artificielle).

Lisp est un langage extrèmement puissant et sophistiqué , mais peut être assez lourd et peu maniable.

FreeBSD a GNU Common Lisp de disponible sous la forme d'un logiciel pré-compilé.

Perl

Très populaire auprès des administrateurs système pour la rédaction de procédures; aussi souvent utilisé sur les serveurs Internet pour l'écriture de procédures CGI.

La dernière version (version 5) est fournie avec FreeBSD.

Scheme

Un dérivé du Lisp qui est plutôt plus compact et plus propre que le Common Lisp. Populaire dans les universités étant suffisamment simple à apprendre aux étudiants comme premier langage , il possède un niveau d'abstraction suffisamment important pour être utilisé dans le travail de recherche.

On trouve pour FreeBSD les logiciels pré-compilés interpréteur Scheme Elk, l'interpréteur Scheme du MIT et l'interpréteur Scheme SCM.

Icon

Le langage de programmation Icon.

Logo

l'interpréteur Logo de Brian Harvey.

Python

Le langage orienté objet Python

5.3.3. Les compilateurs

Les compilateurs sont plutôt différents entre eux. Tout d'abord, vous écrivez votre code dans un fichier (ou des fichiers) en utilisant un éditeur de texte. Vous exécutez ensuite le compilateur et vérifiez qu'il accepte votre programme. S'il ne compile pas, grincez des dents et retournez à l'éditeur; s'il compile et vous donne un programme, vous pouvez exécuter ce dernier à l'invite de commande ou dans un dévermineur pour voir s'il fonctionne correctement. [1]

Evidemment, ce n'est pas aussi direct que d'utiliser un interpréteur. Toutefois cela vous permet de faire beaucoup de choses qui sont difficiles ou même impossibles avec un interpréteur, comme écrire du code qui interagit de façon proche du système d'exploitation ou même d'écrire votre propre système d'exploitation ! C'est aussi utile si vous avez besoin d'écrire du code très efficace, étant donné que le compilateur peut prendre son temps et optimiser le code, ce qui ne serait pas acceptable avec un interpréteur. Et distribuer un programme écrit pour un compilateur est habituellement plus évident qu'un écrit pour un interpréteur—vous pouvez juste donner une copie de l'exécutable, en supposant que l'utilisateur possède le même système d'exploitation que vous.

Les langages compilés incluent Pascal, C et C++. C et C++ sont des langages plutôt impitoyables et conviennent mieux aux programmeurs expérimentés; Pascal, d'autre part, a été conçu comme un langage éducatif, et est un assez bon langage pour commencer. Malheureusement, FreeBSD ne possède aucun support Pascal, excepté pour un convertisseur Pascal vers C dans les logiciels portés.

Le cycle édition-compilation-exécution-déverminage étant relativement pénible lors de l'utilisation de programmes séparés, beaucoup de fabricants de compilateur ont produit des environnements de développement intégrés (ou IDE pour Integrated Development Environments et EDI dans la langue de Molière). FreeBSD ne possède pas d'EDI tel quel; toutefois il est possible d'utiliser Emacs à cet effet. Ceci est vu dans Section 5.7, « Utiliser Emacs comme environnement de développement ».



[1] Si vous l'exécuter à l'invite de commande, vous pouvez recevoir un fichier d'image mémoire (NDT: le désormais célèbre "core dump").

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.