Little Languages Flashcards

(8 cards)

1
Q

What are Little Languages

A

Small, domain-specific languages that serve as elegant interfaces to control programs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why use Them?

A

Simplify complex coding tasks, Reduce repetitive descriptions, Help with tricky manipulations and hardware control.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the Advantages of Little Languages

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Common Examples

A

Make, Shell scripting, Lex/Yacc, Python, Perl, Awk, LaTeX

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

PILOT

A

Programmed Inquiry, Learning, Or Teaching language

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is PILOT

A

A little language for teaching: Multi choice questions, Short answer questions, Interactive learning sessions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Designing Little Languages

A

Study whole problem, think about how a little language may help
Think about: Abstraction, Simplicity, Linguistic structure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Language Design

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly