Skip to content

Commit 4937307

Browse files
committed
Update README.md
1 parent 8d9d962 commit 4937307

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

README.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,35 @@
11
# Stellogen
22

33
**Note: this project is an experimental proof of concept, not a fully
4-
designed and specified programming language.**
4+
designed or specified programming language. It is better understood as a
5+
research project or an esoteric language.**
56

67
Stellogen is a *logic-agnostic* programming language based on term unification.
78
It has been designed from concepts of Girard's transcendental syntax.
89

910
## Key characteristics
1011

11-
- dynamically/statically **typed** but without primitive type nor type systems,
12+
- dynamically/statically **typed** but without primitive types nor type systems,
1213
by using very flexible assert-like expressions defining *sets of tests* to pass;
13-
- everything is based on **term unification**;
14+
- everything is based on **term unification**.
1415

1516
It is multi-paradigm:
16-
- _logic programs_ are the elementary bricks of computation and typing;
17+
- _logic programs_ called "constellations" are the elementary bricks of
18+
computation and typing;
1719
- _functional programs_ correspond to logic programs enforcing an order of
1820
interaction;
19-
- _imperative programs_ are iterative recipes constructing logic programs;
20-
- _objects_ are ways to structure logic programs.
21+
- _imperative programs_ are iterative recipes constructing constellations;
22+
- _objects_ are ways to structure constellations.
2123

2224
## Influences
2325

2426
It draws (or try to draw) inspiration from:
25-
- Prolog/Datalog (for unification-based computation);
27+
- Prolog/Datalog (for unification-based computation and constraint solving);
2628
- Smalltalk (for message-passing, object-oriented paradigm and minimalism);
2729
- Coq (for proof-as-program paradigm and iterative programming with tactics);
2830
- Scheme/Racket (for minimalism and metaprogramming);
29-
- Haskell/Ruby/Lua (for syntax).
31+
- Haskell/Ruby/Lua (for syntax);
32+
- Shen (for its optional type systems).
3033

3134
## Syntax samples
3235

@@ -62,18 +65,18 @@ a1 = galaxy
6265
-a(0:W q1) +a(W q2).
6366
end
6467
65-
show process #e. #a1. #kill. end
66-
show process #000. #a1. #kill. end
67-
show process #010. #a1. #kill. end
68-
show process #110. #a1. #kill. end
68+
show process #e. #a1. %kill. end
69+
show process #000. #a1. %kill. end
70+
show process #010. #a1. %kill. end
71+
show process #110. #a1. %kill. end
6972
```
7073

7174
More examples can be found in `examples/`.
7275

7376
## Learn
7477

75-
This project is still in development, hence the syntax and features are still
76-
changing frequently.
78+
This project is still in (chaotic) development, hence the syntax and features
79+
are still changing frequently.
7780

7881
To learn more about the current implementation of stellogen:
7982
- French guide (official): https://tsguide.refl.fr/

0 commit comments

Comments
 (0)