Fiche technique | |
---|---|
Type de produit : | Langage de programmation |
Auteur : | Scott Hunziker et Mike Brennan |
Licence : | GNU General Public License |
Date de publication : | 1990 à 2004 |
Introduction
Le langage de programmation Algae est un langage de programmation interprété utilisé pour l'analyse numérique conçu et développé par Scott Hunziker et Mike Brennan. Il est été développé pour résoudre rapidement des gros problèmes dans le domaine de l'aéronautique.
Algae a grandi dans le «Structures Outback» de la Boeing Aerospace Company (aujourd'hui le Boeing Defense & Space Group). En 1989, Bill Russell a convaincu Bob Vos, le chef du projet ISM de Boeing, que l'ISM avait besoin d'un langage interactif. Avec l'aide de Dave Beste, Bill a mis au point un système brut (qui ressemblait beaucoup à MATLAB) avec un analyseur de descente récursive. Ils l'ont appelé ISMLAB. Après que Bill eut trouvé un vrai travail, Scott Hunziker prit la relève et apporta des changements majeurs. ISMLAB, ainsi que l'ensemble du projet ISM, fut annulé de manière ignominieuse en 1991.
Scott Hunziker et Mike Brennan commencèrent à travailler sur un successeur d'ISMLAB appelé AMPL (A Matrix Programming Language) avec un financement interne de Boeing. Au fur et à mesure que AMPL prenait forme, le financement interne s'est tari, laissant Scott s'occuper de l'entretien pendant son temps libre. Boeing a généreusement mis AMPL à la disposition du public en 1994. Le nom a été changé en Alki en 1995 car, à cette époque, un paquet sans rapport appelé AMPL était distribué via netlib. Ce nom était également source de conflit et a finalement été changé en Algae au début de 1997.
Voici les caractéristiques principales du langage :
- Syntaxe mathématique intuitive : Le langage est conçu pour ressembler à l'écriture mathématique standard, ce qui le rend plus accessible aux chercheurs travaillant avec des équations complexes. Par exemple, il permet de décrire des équations différentielles partielles ou des intégrales dans un format proche de leur représentation écrite.
- Focalisation sur les simulations numériques : Algae est particulièrement performant pour résoudre des problèmes liés aux simulations scientifiques et à la modélisation de systèmes dynamiques, comme des modèles écologiques, biologiques ou mécaniques.
- Modélisation symbolique : Algae intègre des outils pour manipuler des expressions mathématiques symboliques, semblable à des systèmes comme Mathematica ou SymPy, ce qui facilite l'analyse des modèles avant leur résolution numérique.
- Support pour les parallélismes : Il est conçu pour exploiter les architectures modernes, comme les processeurs multi-coeurs ou les GPU, ce qui permet des simulations rapides de modèles complexes.
- Portabilité et interopérabilité : Algae peut souvent être intégré à d'autres systèmes ou outils scientifiques. Il peut générer des fichiers pour être utilisés avec d'autres langages de programmation ou cadres d'applications.