Shared Flashcard Set

Details

CS424
Chapter 1: Concepts of Programming Languages by Sebesta
23
Computer Science
Undergraduate 4
06/15/2024

Additional Computer Science Flashcards

 


 

Cards

Term
What are the 4 most common areas of computer applications?
Definition
1. Scientific applications
2. Business applications
3. Artificial intelligence
4. Web software
Term
What are the characteristics of scientific software and what are some of the common languages for them?
Definition
They use simple data structures and require large floating-point arithmetic computations

Languages: FORTRAN, ALGOL 60
Term
What are the characteristics of business applications and what languages are associated with them?
Definition
They are able to produce elaborate reports, precise ways of describing and storing decimal numbers and character data, and the ability to specify decimal arithmetic operations

Langauges: COBOL
Term
What are the characteristics of artificial intelligence applications and what are some of the languages associated with them?
Definition
These programs are characterized by the use of symbolic rather than numeric computations- meaning that symbols consisting of names rather than numbers, are manipulated. Also they typically use linked lists rather than arrays

Langauges: Lisp, Prolog, Python, Scheme
Term
What are the characteristics of web software and what are the associated langauges?
Definition
They need dynamic web content.

The languages are the HTML markup langauges with general purpose languages like Java and then some embedded computational ability with something like JavaScript,
Term
What are seven areas to evaluate a programming langauge?
Definition
1. Readability
2. Writability
3. Reliability
4. Cost
5. Portability
6. Generality
7. Well-defined-ness
Term
What does the criteria of readability mean?
Definition
It is the ease with which a program can be read and understood
Term
What are some of the main things that contribute to a program's readability?
Definition
1. Overall simplicity- programs with fewer basic constructs are easier to read
2. Feature multiplicity- more than 1 way to accomplish something
3. Orthogonality- a small set of primitives can be combined in a small number of ways and every combination is meaningful
4. Data types- number of data types and data structures
5. Syntax design which includes special words and form and meaning (designing statements so that form indicates purpose)
Term
What does it mean to evaluate a program on its writability?
Definition
It is the measure of how easily a language can be used to write a program for a chosen problem domain
Term
What are some of the main things that contribute to a programs's writability?
Definition
1. Simplicity and orthogonality
2. Expressivity- which could mean powerful operators that can do a lot in a small amount of time OR that the language has a convenient way of specifying computations
Term
What does it mean to evaluate a programming language on reliability?
Definition
A program is reliable if it performs to its specifications under all conditions
Term
What are some of the components of reliability?
Definition
1. Type checking
2. Exception handling
3. Aliasing
Term
What is involved with the cost of a programming language?
Definition
1. Cost of training the programmers
2. Cost of writing programs in that language
3. Cost of executing the program (run-time checks slow things down, optimization is helpful)
4. Costs of poor reliability
5. Cost of maintaining a program

Main costs: program development, maintenance, and reliability
Term
What is optimization?
Definition
Optimization describes the collection of techniques that compilers use to decrease the size and/or increase the execution speed of the code they produce
Term
What is portability?
Definition
The ease with which a program can be moved from one implementation to another
Term
What is generality?
Definition
It is the applicability to a wide range of applications
Term
What is well-definedness?
Definition
it is the completeness and precision of the language's official defining document
Term
What are functional/applicative languages?
Definition
They are languages in which the primary means of computation is applying functions to given parameters
Term
What are non-functional/imperative languages?
Definition
They dominate and follow the Van Neumann architecture
Term
What are the two most influential factors on programming language design?
Definition
1. Computer architecture- typically the van Neumann
2. Programming design methodologies (top down and step-wise refinement, to procedural to data, then data to object)
Term
What are the 4 language categories?
Definition
1. Imperative
2. Functional
3. Logical
4. Object oriented
Term
What are the 4 ways to implement programming languages?
Definition
1. Compiler implementation 2. Pure implementation - use an interpreter 3. Hybrid implementation systems 4. Preprocessor
Term
What are the steps in compiling a language?
Definition
1. Lexical analyzer gathers the characters of the source program into lexical units
2. Syntax analyzer takes these and constructs parse trees
3. Intermediate code generator produces intermediate code
4. Optimization occurs
5. Linking and loading
6. Load module/executable image
Supporting users have an ad free experience!