Concept

Aldor

Résumé
Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system. Aldor combines imperative, functional, and object-oriented features. It has an elaborate type system, allowing types to be used as first-class values. Aldor's syntax is heavily influenced by Pascal, but it is optionally indentation-sensitive, using whitespace characters and the off-side rule, like Python. In its current implementation, it is compiled, but an interactive listener is provided. Aldor is distributed as free and open-source software, under the Apache License 2.0. The Hello world program looks like this: #include "aldor" #include "aldorio" stdout < "Hello, world!" < newline; Example of dependent types (from the User Guide): #include "aldor" #include "aldorio" #pile sumlist(R: ArithmeticType, l: List R): R == s: R := 0; for x in l repeat s := s + x s import from List Integer, Integer, List SingleFloat, SingleFloat stdout < sumlist(Integer, [2,3,4,5]) < newline stdout < sumlist(SingleFloat, [2.0, 2.1, 2.2, 2.4]) < newline 99 Bottles of Beer: #include "aldor" #include "aldorio" import from Integer, String; bob(n: Integer): String == { b: String := " bottle"; if n ~= 1 then b := b + "s"; b + " of beer"; } main(): () == { n: Integer := 99; otw: String := " on the wall"; refrain while n > 0 repeat { stdout < n < bob(n) < otw < ", " < n < bob(n) < "." < newline; stdout < "Take one down and pass it around, "; n := n - 1; if n > 0 then stdout < n; else stdout < "no more"; stdout < bob(n) < otw < "." < newline; stdout < newline; } last verse stdout < "No more" < bob(n) < otw < ", no more" < bob(n) < "." < newline; stdout < "Go to the store and buy some more, "; n: Integer := 99; stdout < n < bob(n) < otw < ".
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Publications associées

Chargement

Personnes associées

Chargement

Unités associées

Chargement

Concepts associés

Chargement

Cours associés

Chargement

Séances de cours associées

Chargement

MOOCs associés

Chargement