Concept

Aldor

Summary
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 < ".
About this result
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
Related publications

Loading

Related people

No results

Related units

Loading

Related concepts

Loading

Related courses

Loading

Related lectures

Loading

Related MOOCs

No results