COBOL Background
Released in 1959
Grace Hopper
Industry, universities, and government collaboration
Cold War pressures
80% of business transactions
65% of all code is in COBOL
COBOL – Why?
Software Lifecycle
Cheaper to maintain
Y2K
Self-documenting code
Verbose
“IF a < b AND > c …”
Divisions
COBOL – Why?
Divisions
Identification Division
Environment Division
Data Division
Procedure Division
COBOL – Data Division
Data Division
Pictures
9 = digit
X = any character
A = alphabetic character
V = decimal point position
S = sign
Repeats
PIC 9 (4) = 9999
COBOL
Reliability
Stood test of time
Has “ALTER X TO PROCEED TO Y” (a negative)
Uses GOTO statements (a negative)
Today
Cross platform: OpenCOBOL C translation
IDEs (Net Express)
LISP - Syntax
Function call: “(fun arg1 arg2)”
(+ 1 2 3)
Lists
(list ‘3 ‘7 ‘apples)
(3 7 apples)
(list ‘13 list(‘3 ‘5))
(13 (3 5))
LISP - Examples
If then else
(if nil
(list ‘2 ‘3)
(list ‘5 ‘6))
One line variant:
(if nil (list ‘2 ‘3) (list ‘5 ‘6))
LISP - Examples
Factorial
(defun factorial (n)
(if (<= n 1)
1
(* n (factorial (- n 1)))))
One line variant:
(defun factorial (n) (if (<= n 1) 1 (* n (factorial (- n 1)))))
LISP - Examples
Recursive List Size
(defun recursiveSize (L)
(if (null L)
0
(1+ (recursiveSize(rest L)))))
LISP - Examples
Recursive List Sum with “LET”
(defun sum (L)
(if (null L)
0
(let
((S1 (first L))
(S2 (sum (rest L))))
+ S1 S2)))
Python
Developed early 1990’s Guido van Rossum
ABC language
Python 2.0 2000
Community-supported -> reliability
Modular; community expandable
Python 3.0 2008
Python – Readability is Key
Design goal
One way to do things
Clarity over clever code
Whitespace over braces
“pass” for No-Op
Python
Writability
Similar to other OO languages
Verification support
Interpreted, assert, no statements in conditions
Clean style
Few keywords
Simple grammar -> few ways to do something
Python
Comparisons
== tests values, not references
A < b <= C works properly
Ternary operator readable
“a if b else c”
Python
System Requirements
Cross platform
Python Interpreter
Simplicity
Small core language
Large libaraies
Python - Examples
a = 15
if(a < 10):
print(“input less than 10”)
elif(10 < a < 20):
print(“input between 10 and 20”)
else:
print(“input greater than 20”)
Python - Examples
Function definition
def greatest(a, b, c):
largest = a if a > b else b
largest = largest if largest > c else c
print(largest)
Function call
greatest(7, 3, 14)
14
Python - Examples
Determine if prime
def isPrime(num):
prime = True
for i in range(2, (num / 2) + 1):
if num % i == 0:
prime = False
return prime
def tenPrimes():
list = []
count = 0
current = 2
#store the first 10 primes in a list
while count < 10:
if isPrime(current):
count += 1
list.append(current)
current = current + 1
#print the list
for element in list:
print(element)