Category:CLU
This programming language may be used to instruct a computer to perform a task.
Execution method: | Compiled (machine code) |
---|---|
Garbage collected: | Yes |
Parameter passing methods: | By value |
Type safety: | Safe |
Type strength: | Strong |
Type compatibility: | Structural |
Type expression: | Explicit |
Type checking: | Static |
See Also: |
|
CLU is a programming language developed in the 1970s at MIT by professor Barbara Liskov. It pioneered many features that are common in programming languages today.
CLU was the first language to support iterators (using the yield statement), abstract data types, parameterized types, and type-safe unions. It was also one of the first to support structured exception handling. CLU also supports *clusters*, for which it is named, and which are only one step removed from modern object-oriented classes, lacking only inheritance and instance methods. All objects live on the heap, are automatically garbage-collected, and are accessed by reference, as in Java.
Furthermore, CLU allows every operator and special form to be overloaded. All of them are just syntactic sugar for type methods, e.g. x + y
is the same as T$add(x, y)
(where T
is the type of x
), and will work as long as the T
cluster contains an appropriate add
method. CLU takes this much further than most modern languages: even an expression like foo.bar := baz
is really just a setter underneath, and is exactly equivalent to T$set_bar(foo, baz)
(where, again, T
is the type of foo
).
CLU has left its mark on many modern programming languages. C++ templates and Java and C# generics were based on CLU's parameterized types. Java's garbage-collected object model is pretty much the same as CLU's, and its exception handling also strongly resembles CLU. Python, on top of the garbage-collected objects and the exceptions, also borrowed the yield statement and the overloading mechanism.
Pages in category "CLU"
The following 200 pages are in this category, out of 241 total.
(previous page) (next page)A
- ABC problem
- ABC words
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Ackermann function
- Additive primes
- Aliquot sequence classifications
- Almost prime
- Amicable pairs
- Anagrams
- Anti-primes
- Append numbers at same position in strings
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Attractive numbers
B
C
- Cantor set
- Catalan numbers
- Catamorphism
- Character codes
- Chowla numbers
- Combinations
- Comma quibbling
- Command-line arguments
- Common list elements
- Compound data type
- Convert seconds to compound duration
- Copy stdin to stdout
- Count how many vowels and consonants occur in a string
- Create a two-dimensional array at runtime
- CUSIP
- Cycle detection
D
- Damm algorithm
- Day of the week
- Day of the week of Christmas and New Year
- De Bruijn sequences
- Department numbers
- Detect division by zero
- Determine if a string is collapsible
- Determine sentence type
- Digit fifth powers
- Digital root
- Digital root/Multiplicative digital root
- Disarium numbers
- Discordian date
- Doomsday rule
- Dot product
E
F
- Factorial
- Factors of an integer
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Find adjacent primes which differ by a square integer
- Find first missing positive
- Find prime n such that reversed n is also prime
- Find prime numbers of the form n*n*n+2
- Find squares n where n+1 is prime
- Find words which contain the most consonants
- Find words which contains all the vowels
- Find words which contains more than 3 e vowels
- First 9 prime Fibonacci number
- FizzBuzz
- Floyd's triangle
- Fractran
- Function definition
- Fusc sequence
G
H
I
L
M
- Magic squares of odd order
- Magnanimous numbers
- Matrix with two diagonals
- Mayan numerals
- McNuggets problem
- Mertens function
- Middle three digits
- Minimum multiple of m where digital sum equals m
- Minimum number of cells after, before, above and below NxN squares
- Modular inverse
- Multifactorial
- Munchausen numbers
- Mutual recursion
N
- N'th
- N-grams
- N-queens problem
- Number reversal game
- Numbers divisible by their individual digits, but not by the product of their digits.
- Numbers in base-16 representation that cannot be written with decimal digits
- Numbers whose binary and ternary digit sums are prime
- Numbers whose count of divisors is prime
- Numbers with equal rises and falls
P
- Palindrome detection
- Pangram checker
- Parsing/RPN calculator algorithm
- Partition an integer x into n primes
- Pascal matrix generation
- Perfect totient numbers
- Permuted multiples
- Pernicious numbers
- Pick random element
- Pig the dice game
- Playing cards
- Population count
- Primality by trial division
- Primality by Wilson's theorem
- Prime numbers which contain 123
- Primorial numbers
- Priority queue
- Product of min and max prime factors
- Pseudo-random numbers/Middle-square method
R
S
- Safe primes and unsafe primes
- Search a list
- Self-describing numbers
- Sequence of non-squares
- Shift list elements to left by 3
- Show ASCII table
- Show the (decimal) value of a number of 1s appended with a 3, then squared
- Sierpinski triangle
- Sieve of Eratosthenes
- Sleeping Beauty problem
- Smallest power of 6 whose decimal expansion contains n
- Smallest square that begins with n
- Smith numbers
- Sort the letters of string in alphabetical order
- Sort three variables
- Sorting algorithms/Bubble sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Soundex
- Special divisors
- Split a character string based on change of character
- Square but not cube
- Stack