Programming language design
Special-purpose language
General-purpose language
Important criteria in a good language design:
Writability
Readability
Orthogonality
Reliability
Maintainability
Generality
Uniformity
Extensibility
Standardability
Implementability