Download presentation
Presentation is loading. Please wait.
Published byLenard Welch Modified over 8 years ago
1
COBOL, LISP, and Python Joseph Hoeppner
2
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
3
COBOL – Why? Software Lifecycle Cheaper to maintain Y2K Self-documenting code Verbose “IF a c …” Divisions
4
COBOL – Why? Divisions Identification Division Environment Division Data Division Procedure Division
5
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
7
COBOL – Groups and Elementary data
9
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)
10
COBOL - Summary Readability Writability Reliability Portability
11
LISP LISt Processing List-based language 2 nd High-level language 1958 – John McCarthy for MIT
13
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))
14
LISP – Innovations Garbage Collection If else statements Recursion
15
LISP – Linked Lists Car (first) Cdr (rest)
17
LISP - Examples If then else (if nil (list ‘2 ‘3) (list ‘5 ‘6)) One line variant: (if nil (list ‘2 ‘3) (list ‘5 ‘6))
18
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)))))
19
LISP - Examples Recursive List Size (defun recursiveSize (L) (if (null L) 0 (1+ (recursiveSize(rest L)))))
20
LISP - Examples Recursive List Sum with “LET” (defun sum (L) (if (null L) 0 (let ((S1 (first L)) (S2 (sum (rest L)))) + S1 S2)))
21
LISP- Summary and Comparison Readability Writability Reliability
22
Python Developed early 1990’s Guido van Rossum ABC language Python 2.0 2000 Community-supported -> reliability Modular; community expandable Python 3.0 2008
23
Python – Readability is Key Design goal One way to do things Clarity over clever code Whitespace over braces “pass” for No-Op
24
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
25
Python Comparisons == tests values, not references A < b <= C works properly Ternary operator readable “ a if b else c ”
26
Python System Requirements Cross platform Python Interpreter Simplicity Small core language Large libaraies
27
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”)
28
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
29
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
30
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)
31
Python - Summary and Comparison Readability Writability Reliability
32
Python - Examples Demo
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.