Some of the language criterias to evaluate a programming language are:
- Readability
- Writability
- Reliability
- Cost
- Generality
- Extensibility
- Standardability
- Support for internationalization
1. Readability
Coding should be simple and clear to understand.
1. Simplicity:
Should not involve complex syntax, many ways to perform a single task,overloading of methods and operator etc.
2. Orthogonality:
This means relatively small set of primitive constructs can be combine.
- For ex., int *count; Here pointer and integer is combined.
- Another ex., int count[ 5 ]; Here array and pointer is combine.
3. Control Statements:
There should be adequate control statements.
- Use of for loop, while loop, do while loop is adequate.
- Using of go to statements causes poor readability.
4. Data Types and Structures:
Language should involve adequate facilities for defining data types and data structure.
- For ex., timeout = 1; is unclear as compare to timeout = true;.
5. Syntax Design:
Syntax design affects the readability in the following way.
- Identifier forms: Restriction to very short length of identifier is a barrier to readability.
- Special words: Special words like while, for, class, int affects the readability of any language. If special words are allowed to be variable names than it will become confusing.
2. Writability
Writability is a measure of how easily language can be used to code.Most of the language characteristics that affect readability also affect writability.
1. Simplicity:
Should not involve complex syntax, many ways to perform a single task,overloading of methods and operator etc.
2. Orthogonality:
This means relatively small set of primitive constructs can be combine.
- For ex., int *count; Here pointer and integer is combined.
- Another ex., int count[ 5 ]; Here array and pointer is combine.
3. Support for Abstraction:
Language should support process and data abstraction
4. Expressivity:
In less lines of code program should be writable.
- For ex., for statements makes counting loops easier than while.
- Another ex., is i++ is more expressive than i=i+1.
3. Reliability
1. Type Checking:
It is testing for type error, either at compile or run time.
- For ex., float percentage; is more desirable as compare to int percentage.
2. Exception Handling:
It is the ability of program to handle run time error. Remember, handling runtime error are more expensive than compile errors.
3. Aliasing:
It is same memory location (variable) having more than one name. Which is causes confusion.
4. Readability:
Readability influences reliability.
5. Writability:
Writability also influence reliability.
3. Cost
Total cost of programming should be minimum.
- For ex., cost of trainer.
- Cost of writing algorithm.
- Cost of compiling program in the language.
- Cost of hardware required for program.
- Cost of maintenance.
4. Generality:
Language should not be limited to specific application only.
5. Extensibility:
Should be flexible, must be able to add new constructs.
6. Standardability:
Language should be platform independent.
7. Support for Internationalisation:
Various formats like time, date, currency etc should be supportable.