Download Review1_etzelcz_Abbreviated_Review_Zach_Etzel_

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Falcon (programming language) wikipedia , lookup

Compiler wikipedia , lookup

Reactive programming wikipedia , lookup

Parsing wikipedia , lookup

Control flow wikipedia , lookup

Functional programming wikipedia , lookup

History of compiler construction wikipedia , lookup

Object-oriented programming wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Structured programming wikipedia , lookup

Programming language wikipedia , lookup

Go (programming language) wikipedia , lookup

Domain-specific language wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
Zach Etzel
Abbreviated Review
October 2, 2007
What have we discussed about languages so far this semester?
 some historical information
o Pascal language is named after mathematician Pascal by Niklaus Wirth
created as a teaching language. Early compilers translated it to P-code
o FORTRAN was intended to perform mathematical functions created by a
team led by John Backus at IBM
 Fortran was the first widely-accepted high level language
o GoTO statements considered harmful and made languages hard to
understand was a letter that was written to the Communications of the
ACM that generated a lot of controversy
o Modern Computer languages are moving towards object oriented and
modular programming.
 reasons why we study programming languages
o Increased capacity to express Ideas
 Bette awareness reduces limitations in software development
 Study of programming language concepts builds an appreciation
for valuable language features and encourages programmers to use
them.
o Improved Background for choosing appropriate languages
 Knowledge of many languages provides more choices when a
programmer develops a program
o Increased ability to learn new languages
 Computer programming is rapidly changing
 Programmers must know and understand the vocabulary and
concepts of programming languages to learn new languages as
they are developed.
o Better understanding of the significance of implementation
 Allows the programmer to better understand how the computer
executes language constructs
o Overall advancement of computing
 application domains
o Scientific Domains
 First digital computers were invented for scientific applications
 Require large numbers of floating-point arithmetic computations
o Business Applications
 First successful high-level language for business was COBOL
 There have been few business development applications since
COBOL
o Artificial Intelligence
 Numbers rather than symbols are manipulated
 First functional language for AI was LISP
o Systems Programming




The operating system and all of the programming tools of a
computer system are collectively known as its systems software
o Web Software
 Relates to markup languages and general purpose programming
languages like java.
language evaluation criteria
o Readability
 Overall simplicity
 Orthogonality
 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.
 Control Statements
 Data Types and Structures
 Syntax Considerations
 Identifier Forms
 Special Words
 Form and Meaning
o Writability
 Simplicity and Orthonogality
 Support and Abstraction
 The ability to define and then use complicated structures or
operations in ways that allow many of the details to be
ignored.
 Expressivity
o Reliability
 Type Checking
 Testing for type errors in a given program either by the
compiler or during program execution
 Exception Handling
 Aliasing
 Having two or more distinct referencing methods or names
for the same memory cell
o Cost
 Optimization
 Portability
language translation methods
o Compilation
o Pure Interpretation
o Hybrid Implementation Systems
o Preprocessor
language paradigms
o object-oriented
o procedural
o functional
o Pseudocode




o event-based
basic statements
o assignment
o read
o write
o control
o return
o declaration
o logic
o arithmetic
ways of describing languages
o Context Free grammars
o Backus Naur
o Metalanguage
o Attribute Grammar
o Operational Semantics
o Axiomic Semantics
o Denotaional Semantics
special words
o while
o do
o for
o PROGRAM
o VAR
o END
o GOTO
o If
o Else
o Then
o Type
o Class
o Return
o Data types
data types
o Integer
o Char
o String
o Array
o Record
o Float
o Double
o Record
o Boolean
o Static
o void
o User Defined




built-in functions
o Addition
o Subtraction
o Read
o Write
o Divide
o multiply
subprogram types
o functions return A single value
o one which returns multiple values or none at all – returns values through
the parameter list
parameter passing modes
o Pass-by-copy
o Pass-by-reference
o Pass-by-result
o Pass-by-value
o Pass-by-value-result
Languages
o Fortran
o LISP
o COBOL
o ADA
o C++
o C#
o JAVA
o BASIC
o ALGOL
o SNOBOL
o APL
o SIMULA 67
o Perl
o Pascal
o Prolog