Ada, Scheme, R Emory Wingard

advertisement
Ada, Scheme, R
Emory Wingard
Ada
History
•
Department of Defense in search of high level
language around 1975.
•
Requirements drafted for the language.
•
Competition between vendors to produce
language narrowed down to four.
•
Cii-Honeywell/Bull's language design won.(1979)
History cont.
•
Large requirements called for a large language.
•
Was not released to the public during testing.
•
Dr. Jean Ichbiah headed the French team
•
Based on Pascal
The Compiler
•
Compilers for Ada were not developed until four
years after the language was completed.
•
Compilers are trademarked.
•
Slow compile-time and run-time performance in
the beginning.
Versions
•
Original: Ada 83
•
Ada 95
•
Ada 2005
•
Current version: Ada 2012
Usage
•
Embedded systems
•
Modern principles of software engineering
•
Large software systems
Structure of programs
•
Programs composed of program units
•
Program units have subprograms, packages, task
units, protected units, and generic units.
•
Units consist of two parts: specifications and the
body
•
Most can be compiled separately
Subprograms
•
Used to express algorithms
•
Two kinds: procedures and functions
•
Procedure is a way to bring up actions
•
Functions provide computation of a value.
Packages
•
Considered the highlight of Ada
•
Program units that encapsulate a group of related
declarations and control visibility.
•
Supports definition of interfaces and
implementations
•
Information hiding and abstract data types
•
Structure for larger systems
Exception Handling
•
Based on PL/I and CLU
•
Handled locally in the code so reference
environment is the same.
•
Inadequate for task.
•
No extension to Ada 95 for exception handling.
Types
•
Integer
•
Character
•
Boolean
•
Float
•
String
*Considered to be strongly typed*
•
Readability?
•
Writability?
•
Cost?
R
Functional, Statistical Computing, Graphics, Data Analysis
History
•
Implementation of the S programming language
•
Created by Ross Ihaka and Robert Gentleman
Advantages
•
Open sourced
•
Available across multiple platforms
•
Ease of design of graphics
•
Data analysis
Packages
•
Stores data sets and functions.
•
Similar to classes in Java
•
Functions in packages are related
•
Large number of packages for many different
purposes
•
Only a handful loaded by default
Commands
•
Two forms: expressions assignments
•
Expression are printed immediately, values are not
stored
•
Assignments pass values to variables, these
results are not printed
•
Commands can be grouped by braces
•
Separation of commands done by semi-colons
expression/assignment
examples
Objects
•
Numeric vectors, character vectors, lists,
functions
•
Actually everything in R are objects
•
example
Constants
•
Building blocks for data objects
•
Numbers, character values, and symbols
•
examples.
Precedence rules
•
function calls and grouping expressions
•
Index and lookup operators
•
Arithmetic
•
Comparison
•
Formulas
•
Assignment
•
Help
Control Structures
•
Conditional Statements
if (condition) true_expression else false_expression
Scheme
Overview
•
Developed in the 70s at MIT
•
An extension of LISP
•
Uses: optimizing compilers, financial analysis
packages, operating systems, and writing text
editiors
The Interpreter
•
Interactive
•
Infinite read-evaluate-print loop
•
Very small, increased reliability
Programs
•
Collection of functional definitions
•
DEFINE
•
binds names to a value
•
binds names to lambda expressions
•
prototypes
•
expression
Programs cont.
•
Block structured
•
keywords and variables are lexically scoped
•
This makes the programs modular
•
Increases readability and reliability
•
Maintenance is easier
Programs cont.
•
Scope of binding determined before evaluation of
program by compiler
•
Makes the code more efficient
Arithmetic
•
Scheme uses prefix notation
•
This simplifies precedence and associativity of
operators
•
example
Data Structures
•
Scheme uses lists rather than arrays
•
Shown as sequences of objects surrounded by parenthesis.
•
quote is used to tell the program that the list is to be treated as
data and not a procedure
•
List manipulation:
•
car- returns the first element in a list
•
cdr- returns the rest of the list
•
cons- used to construct list
Advantages
•
Portable
•
Used to teach programming in high schools
•
Very small and simplistic
Download