ICON - Wikipédia

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Icon.

ICON
Logo.
Date de première version 1977Voir et modifier les données sur Wikidata
Dernière version 951 (5 juin 2013)[1]Voir et modifier les données sur Wikidata
Influencé par String Oriented Symbolic LanguageAlgolVoir et modifier les données sur Wikidata
Site web www.cs.arizona.edu/iconVoir et modifier les données sur Wikidata
modifier 

Icon est associé à un langage de programmation de haut niveau découlant des langages SNOBOL-4, CLU et C (K&R). C'est un langage impératif et procédural, dont la syntaxe ressemble aux langages C et Pascal (langage).

Histoire

[modifier | modifier le code]

Icon fut créé en 1980 par Griswold (université d'Arizona). L'évolution d'Icon continue, sa version est actuellement la 9.[Quand ?] Son successeur est Unicon, créé à l'université du Nevada, qui intègre en plus une couche objet, une interface plus complète avec Unix et une interface avec SQL.

Exemples de code

[modifier | modifier le code]

Commençons par le classique Hello world :

# Helloworld procedure main() write("Hello World !") end

Voici un exemple de programme Icon qui lit en entrée un fichier et affiche sur la sortie standard le fichier avec les lignes numérotées :

# Ceci est un commentaire procedure main(args) fichier := &input fichier := open(args[1]) | stop("Erreur d'ouverture de fichier") numerote_ligne(fichier) end procedure numerote_ligne(fichier) compte := 0 while ligne := read(fichier) do writes(compte +:= 1, " ", ligne, "\n") end

Concepts

[modifier | modifier le code]

ICON est un langage de haut niveau, ce qui signifie qu'il permet au programmeur d'utiliser des concepts plutôt éloignés du fonctionnement réel d'une machine. De ce fait, il propose différents mécanismes très évolués comme les générateurs ou encore l'évaluation dirigée par le but.

Les générateurs permettent, à partir d'une expression, de fournir une suite de valeurs. Par exemple :

every i:= (1 to 3) | (3 to 1 by -1) do ...

va nous permettre de faire varier i de 1 à 3 puis de 3 à 1. Ou encore

if (x | y) = (3 | 5) then ...

permet de tester si l'une des variables x ou y a la valeur 3 ou 5

Le mécanisme de l'évaluation dirigée par le but permet de lancer une série d'opérations répétitives, sans se soucier du cas d'arrêt. Par exemple dans le cas où nous souhaiterions afficher toutes les valeurs d'un tableau tab, nous ferions :

every write(!tab)

ICON permet certaines constructions, souvent plus connues des langages fonctionnels, mais néanmoins fort pratiques :

write(case i of { 0  : "parfait" 1|-1  : "pas loin" default : "loin..." })

Voici un autre exemple pour montrer la puissance des différents opérateurs existants dans le cas du mélange d'une tableau :

every 1 to *tab do ?tab :=: ?tab

Liens externes

[modifier | modifier le code]
  • (en) Site officiel
  • (fr) petit aperçu d'Icon

Notes et références

[modifier | modifier le code]
  1. ↑ a et b « Release 951 », 5 juin 2013 (consulté le 19 septembre 2023)
  • icône décorative Portail de la programmation informatique

Tag » Archive Icons Signification