1 / 19

IT327 Concepts of Programming Languages

IT327 Concepts of Programming Languages. IT 327, Fall 2019 MW 9:35 – 10:50 AM STV 139A (Section 1) MW 11:00 – 12:15 PM STV 139A (Section 2). Home page of the Class. Concepts of Programming Languages. Then, what is it? What do you expect? What do you want to learn from this class?.

awasson
Download Presentation

IT327 Concepts of Programming Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IT327Concepts of Programming Languages IT 327, Fall 2019MW 9:35 – 10:50 AM STV 139A (Section 1) MW 11:00 – 12:15 PM STV 139A (Section 2) Home page of the Class IT 327

  2. Concepts of Programming Languages Then, what is it? What do you expect? What do you want to learn from this class? IT 327

  3. In order to understand the universe, we have to understand the language in which the universe is written, and mathematics is the language. -- Galileo Galilei (1564 -1642) -- In order to understand Information Technology, we have to understand the language in which Information Technology is written, and the Programming Language is the language. -- -- IT 327

  4. What is acomputer? Amachinethat cancompute! What is amachine? What iscomputation? Why bother? Because, the way we understand and formalize them directly shapes the design of programming languages. IT 327

  5. Computer -- Amachinethat cancompute! Machine -- A device that follows a certain fixed causal rules. Computation -- A sequence of procedures that manipulate data. IT 327

  6. design: Difference Engine No. 1 (1821-1832) Analytical Engine (1834-1840) Difference Engine No. 2 (1840-1849) http://www.computerhistory.org/babbage/ Charles Babbage (1791-1871) Difference Engine No. 2 (2002) Difference Engine No. 1 IT 327

  7. Logic and Thought and Computing Aristotle (384 - 322 BC) L E J Brouwer (1881-1966) http://www.klima-luft.de/steinicke/ngcic/persons/aristoteles.htm IT 327

  8. Gottfried W.V. Leibniz (1646-1716) Leibniz’s Dream “Sir! Let’s sit down and compute!! ” http://sunsite.informatik.rwth-aachen.de/phil/filosofer/leibniz.html IT 327

  9. Kurt Gödel (1906-1978) Completeness theorem Incompleteness theorem Recursive theory Computable functions are recursively definable function http://www-groups.dcs.st-and.ac.uk/~history/PictDisplay/Godel.html IT 327

  10. Alonzo Church1903-1995 Lambda Calculus Computable functions are Lambda-term definable http://www.princeton.edu/pr/pwb/03/0505/7a.shtml IT 327

  11. Alan Turing (1912-1954)– The Enigma The man who invented the computer. Computable functions are Turing machine computable Image from http://ei.cs.vt.edu/~history/Turing.html IT 327

  12. Ludwig Wittgenstein (1889-1951) Wittgenstein says: “Turing Machines are human that compute.” http://www.ags.uci.edu/~bcarver/wgallery.html IT 327

  13. Church-Turing Thesis: all algorithms are computable Logical languages e.g. PROLOG 1. Logic 2. Recursive, λ-terms Functional languages e.g. LISP, ML Imperative languages e.g. Algol-60, Fortran, C 3. Turing machines ????? OOP, (e.g. Small Talk, JAVA, C++) What is it? Really? IT 327

  14. Imperative Languages int fact(int n) { int sofar = 1; while (n>0) sofar *= n--; return sofar;} • C Using instructions to command the machine to do something, with branches, iterations, control flows, and side-effects,. IT 327

  15. Functional Languages fun fact x = if x <= 0 then 1 else x * fact(x-1); • ML • LISP defun fact (x) (if (<= x 0) 1 (* x (fact (- x 1))))) Function definition, Recursion, no side-effect IT 327

  16. grandparent(X, sean). X = john. parent(X, leon). X = dennis. X = sandy. Logical Languages parent(A,B) :- dad(A,B).parent(A,B) :- mom(A,B). grandparent(A,B) :- parent(A,C), parent(C,B). dad(dennis, sean). dad(dennis, leon). dad(john, dennis). mom(sandy, leon). mom(sandy,sean). • PROLOG Rules (logic) and facts IT 327

  17. Logical Languages • PROLOG fact(X,1) :- X =:= 1.fact(X,Fact) :- X > 1, NewX is X - 1, fact(NewX,NF), Fact is X * NF. fact(4,X). X = 24. fact(5,30). false. IT 327

  18. OOP (Object-oriented Programming) A new programming paradigm after ’80s. Problem solving  Procedure finding But Why should I have to write the same procedure to do the same job over and over again? Fact: Different problems usually consist of many common smaller problems. Problem solving Solution arranging IT 327

  19. OOP public class MyInt { private int value; public MyInt(int value) { this.value = value; } public int getValue() { return value; } public MyInt getFact() { return new MyInt(fact(value)); } private int fact(int n) { int sofar = 1; while (n > 1) sofar *= n--; return sofar; }} • Java IT 327

More Related