Fundamentals of Computer Programming Languages UPT
Fundamentals of Computer Programming Languages UPT
Languages
PL quality factors
Lecture 01
sl. dr. ing. Ciprian-Bogdan Chirila
Lab
Mirella Mioc
mmioc@cs.upt.ro
Data types
Abstract data types
Object-oriented programming languages
Control structures
Programming Language
Programming language (PL)
formal notation specifying several operations to
be executed (by a computer)
Phase 3: Implementation
Is done according to the specification
The PL is chosen to be the most suitable for the
system context
Several criteria are taken into account
How much the programmer knows the PL
How much the PL features are suitable to the
requirements
What features offer the IDE (Integrated Development
Environment) for coding and testing
What execution speed performances are reached by
the compiled system in the selected PL
Phase 4: Validation
Is done in each phase of the development
process
It means checking whether the system
respects the requirements
Intense testing process
Using multiple data sets
Reaching all program branches
Creating extreme conditions
Phase 5: Maintenance
After deployment errors may occur
Fixing is needed
Possible causes
Undiscovered errors in the validation phase
Extending the program with new features
Optimizing parts of the programs leading to better
performance
Hardware or software platform changes
E.g
Information hiding as design method and language facility in
describing abstract data
Information hiding involves:
Maintainability
The capability of including new features or
upgrading the existing ones
Efficiency
It means offering optimal services in the context
of existing resources
Other factors
Design methods
IDE (Integrated Development Environment)
tools
Algorithms
Human factors
and last but not least . the PL!!!
PL qualities
Scientific
Technical
Economical
etc.
Readability
The program must be read easily
Its logic must be deducible from the context
Important when programmers modify the
code of other programmers
For increased readability the PL must have
Identifiers
Expressive keywords
Software decomposition facilities
Exception handling
Important for creating reliable programs
Program sequences can be specified which
will be activated when exceptional
phenomena occur
arithmetic overflow, underflow
etc
Domain rules
Import and export rules of entities between modules
Abstract types
Objects
Orthogonality
The language must be defined on basic
facilities
Facilities must be able to be freely combined
With predictable effects
With no restrictions
e.g. lack of orthogonality in Pascal
functions can not be members in a structured
type
Uniformity
Similar constructions have similar semantics
e.g. lack of uniformity in C for the static
keyword
Used in a function static refers to memory
allocation (opposed to automatic)
Used outside a function influences visibility
Portability
Moving a program from a computer to another
without modifications
with small modifications
Efficiency
From the point of view of
compilation
The PL must be defined as such in order to facilitate the
creation of fast compilers
object program
Declaring variables and their types
Expression type inference at compile time
Strong typing like in Pascal