Domain Specific Languages
The big idea is based on the fundamental principle that any socal group involved in shared activity develop their own domain-specific language to talk about, to share acquired knowledge and to communicate experiences.
This language is crucial for understanding and refining of the mental concepts and for passing knowledge in a process of teaching and learning.
There is thousands years old mathematical tradition, notably the ancient geometry, which is what a descriptive (or declarative) language is all about.
Describe what to do, not how to do
Ideally, we should be able to communicate to a program our intentions without writing out all the particular details of how to do it imperatively.
We describe in terms of certain functions and operators provided by a library which is a set of specialized modules (there should be clearly separated layers of such libraries ).
We should have been able to say something like.
time-frame = Hourly resistance = 21k support = 17k trend = Down
Communicating our strategic understanding to augment what system is able to infer by itself.
an Embedded DSL
Functional languages, such as Haskell, are particularly well-suited to develop embedded DSLs and to represent and manipulate declarative mathematical knowledge (verbalized and encoded with a symbolic notation).
an Interpreter
A state-of-the-art system should have at least one interpreter of some simple, declarative embedded language within it.