CSC 461 Ch1
program counter
. Each instruction to be executed must be moved from memory to the processor. The address of the next instruction to be executed is maintained in a register called the
programming environment
A collection of tools used in software development
reliable
A program is said to be _______ if it performs to its specifications under all conditions.
Increased capacity to express ideas Improved BAckground for choosing appropriate languages Increased ability to learn new languages Better understanding of the significance of implementation Better use of languages that are already known Overall advancement of computing
Benefits of studying concepts of programming languages
Training programmers writing the program compiling programs executing programs language implementation system poor reliability maintaining programs
Costs of writing a program
compiled
Is compiled or interpreter faster?
Readability
One of the most important criteria for judging a programming language is the ease with which programs can be read and understood.
a single instruction can use either registers or memory cells as the operands.
The VAX instruction design is orthogonal in that
HTML
The World Wide Web is supported by an eclectic collection of languages, ranging from markup languages, such
overall simplicity
The _____________ of a programming language strongly affects its readability
Exception handling
The ability of a program to intercept run-time errors (as well as other unusual conditions detectable by the program), take corrective measures, and then continue is an obvious aid to reliability.
fetch-execute cycle
The execution of a machine code program on a von Neumann architecture computer occurs in a process called
Fortran
The first language for scientific applications was
Cobol
The first successful high- level language for business was
source language
The language that a compiler translates
linking and loading
The process of collecting system programs and linking them to user programs is called
von Neumann bottleneck
The speed of the connection between a computer's memory and its processor often determines the speed of the computer, because instructions often can be executed faster than they can be moved to the processor for execution.
load module or executable image
The user and system code together are sometimes called a
platform independence easier to debug and easier to get source code smaller in size automatic memory management
What are the advantages in implementing a language with a pure interpreter?
Data Abstraction Inheritance Dynamic Method Binding or Polymorphism
What are the three fundamental features of an object-oriented programming language?
Compiler Implementation Just In Time (JIT) or interpreted implementation The combination of both compiled and interpreted implementation
What are the three general methods of implementing a programming language?
Smalltalk
What language was the first to support the three fundamental features of object-oriented programming?
Lack of type checking can lead to unreliability of the code Inadequacy of control statements requiring extensive usage of goto statements
What two programming language deficiencies were discovered as a result of the research in software development in the 1970s?
Pure interpretation
With this approach, programs are interpreted by another program called an interpreter, with no translation whatsoever.
hybrid implementation systems
a compromise between compilers and pure interpreters; they translate high- level language programs to an intermediate language designed to allow easy interpretation
Simplicity Orthogonality Data Types Syntax Design
characteristics that affect Readability
Simplicity Orthogonality Data Types Syntax Design Support for abstraction Expressivity Type Checking Exception Handling Restricted aliasing
characteristics that affect Reliability
Simplicity Orthogonality Data Types Syntax Design Support for abstraction Expressivity
characteristics that affect Writability
is feature multiplicity
having more than one way to accomplish a particular operation
NetBeans
is a development environment that is primarily used for Java application development but also supports JavaScript, Ruby, and PHP.
total cost
is a function of many of its characteristics.
Writability
is a measure of how easily a language can be used to create programs for a chosen problem domain
preprocessor
is a program that processes a program just before the program is compiled
aliasing
is having two or more distinct names in a program that can be used to access the same memory cell.
Type checking
is simply testing for type errors in a given program, either by the compiler or during program execution.
Optimization
is the name given to the collection of techniques that compilers may use to decrease the size and/or increase the execution speed of the code they produce
Lisp
language used in artificial intelligence
New software development methodologies
led to new programming paradigms and by extension, new programming languages
linker
linking is accomplished by a systems program called a
Orthogonality
means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language.
Expressivity
means that there are very powerful operators that allow a great deal of computation to be accomplished with a very small program. More commonly, it means that a language has relatively convenient, rather than cumbersome, ways of specifying computations.
von Neumann architecture
prevalent computer architecture
compiler implementation
programs can be translated into machine language, which can be executed directly on the computer
parse trees
represent the syntactic structure of the program.
Generality
the applicability to a wide range of applications
well-definedness
the completeness and precision of the language's official defining document
portability
the ease with which programs can be moved from one implementation to another
Errors in programs can go undetected when nearly any combination of primitives is legal. This can lead to code absurdities that cannot be discovered by the compiler.
too much orthogonality can be a detriment to writability.
operator overloading
which a single operator symbol has more than one meaning