Little Languages Flashcards
(8 cards)
What are Little Languages
Small, domain-specific languages that serve as elegant interfaces to control programs
Why use Them?
Simplify complex coding tasks, Reduce repetitive descriptions, Help with tricky manipulations and hardware control.
What are the Advantages of Little Languages
Error Reduction: Less repetition leads to fewer mistakes.
Ease of Writing: Both compilers/interpreters and programs written in them are simple.
Extensibility: Can be easily modified or expanded.
Reusability: Often applicable across multiple projects.
Common Examples
Make, Shell scripting, Lex/Yacc, Python, Perl, Awk, LaTeX
PILOT
Programmed Inquiry, Learning, Or Teaching language
What is PILOT
A little language for teaching: Multi choice questions, Short answer questions, Interactive learning sessions
Designing Little Languages
Study whole problem, think about how a little language may help
Think about: Abstraction, Simplicity, Linguistic structure
Language Design
Completeness: Ensure all the necessary operations exist, Ensure all the necessary restrictions exist, Add features dictated by use
Orthogonality: Keep unrelated features unrelated
Parsimony: Delete unneeded features
Generality: Use an operation for many purposes
Similarity: Make the language suggestive
Extensibility: Make it extendable, Allow the language to evolve
Openness: Ensure related tools can be used with it