Presentation is loading. Please wait.

Presentation is loading. Please wait.

ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.

Similar presentations


Presentation on theme: "ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University."— Presentation transcript:

1 ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University (ICU)

2 Spring 2005 2 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Announcements The lecturer has been changed The lecturer has been changed There will be a photo session after today’s class There will be a photo session after today’s class Send the TA (torajim.AT. icu.ac.kr) an email about Send the TA (torajim.AT. icu.ac.kr) an email about Your name and student ID Your name and student ID Major (track) Major (track) List programming languages that you are familiar with (sort them based on your skill level) List programming languages that you are familiar with (sort them based on your skill level)

3 Spring 2005 3 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Instructor Information Prof. In-Young Ko Prof. In-Young Ko Office: F607 Office: F607 Official Office Hours: Official Office Hours: Monday 3:00pm – 4:00pm Monday 3:00pm – 4:00pm Thursday 4:00pm – 5:00pm Thursday 4:00pm – 5:00pm Unofficial Office Hours: Any time Unofficial Office Hours: Any time Email: iko.AT. icu.ac.kr Email: iko.AT. icu.ac.kriko.AT. icu.ac.kriko.AT. icu.ac.kr Phone: 042-866-6163 Phone: 042-866-6163

4 Spring 2005 4 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Class Information Code: ICE 1341 Code: ICE 1341 Title: Programming Languages Title: Programming Languages Prerequisites: Prerequisites: Programming Fundamentals I (ICE 0121) Programming Fundamentals I (ICE 0121) Data Structures (ICE 1200) Data Structures (ICE 1200) Class Hours: Mon 4:00PM-5:30 & Thu 2:30PM-4:00PM Class Hours: Mon 4:00PM-5:30 & Thu 2:30PM-4:00PM Classroom: L401 Classroom: L401 Class Homepage: bigbear.icu.ac.kr/~iko/classes/ice1341/ Class Homepage: bigbear.icu.ac.kr/~iko/classes/ice1341/ Lecture notes will be available at the class homepage Lecture notes will be available at the class homepage User the CyberICU site for the Q&A and discussion boards User the CyberICU site for the Q&A and discussion boards TA: Woo-Hyuk Jang (torajim.AT. icu.ac.kr) TA: Woo-Hyuk Jang (torajim.AT. icu.ac.kr) TA Office Hours: TBA TA Office Hours: TBA

5 Spring 2005 5 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Textbook & Reference Information Textbook Robert W. Sebesta, Concepts of Programming Languages, 6th Edition, Addison Wesley, 2003 Reference John C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2003 Brett McLaughlin, Java & XML, 2nd Edition, O’Reilly, 2001

6 Spring 2005 6 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Assignments Each homework is due at the beginning of class on the assigned due date Each homework is due at the beginning of class on the assigned due date Don’t make a cover page for a homework report, but don’t forget to write your name and student ID at the top Don’t make a cover page for a homework report, but don’t forget to write your name and student ID at the top Please do not collaborate in doing homework, no exceptions Please do not collaborate in doing homework, no exceptions

7 Spring 2005 7 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Term Projects Project Teams Project Teams 4-5 people per a group 4-5 people per a group Form your team by Thu March 10th Form your team by Thu March 10th Project proposal Project proposal Midterm Project – Designing a structured programming language Midterm Project – Designing a structured programming language Final Project – Implementing a cross compiler Final Project – Implementing a cross compiler Presentation session for each project Presentation session for each project

8 Spring 2005 8 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Grading Policy Exams Midterm (15%) Final (30%) Projects 2 Term Projects (30%) Homework (15%) 8 Homeworks Due by next week’s class Others Attendance and Participation (10%)

9 Spring 2005 9 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Course Policy Students who fail to attend more than 15% of the classes without proper notice will get F Students who fail to attend more than 15% of the classes without proper notice will get F Please don’t be late for class Please don’t be late for class Please turn off your cell phones when you enter the classroom Please turn off your cell phones when you enter the classroom Please don’t disturb other students by walking in and out during class Please don’t disturb other students by walking in and out during class

10 Spring 2005 10 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University What Is This Class For? Learning another programming language? Learning another programming language? Finding out the best programming language for all purposes? Finding out the best programming language for all purposes? Learning the compiler theory? Learning the compiler theory? Learning design concepts of programming languages? Learning design concepts of programming languages? Practicing designing a programming language? Practicing designing a programming language?

11 Spring 2005 11 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Language Survey BASIC BASIC Fortran Fortran COBOL COBOL P/L I P/L I LISP LISP C/C++ C/C++ Pascal Pascal Java Java Scripting Languages (Perl, JavaScript) Scripting Languages (Perl, JavaScript) Assembly Languages Assembly Languages Markup Languages (HTML, XML, RDF) Markup Languages (HTML, XML, RDF) … * Sebesta Figure 2.1

12 Spring 2005 12 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Programming Paradigms Sequential Programming (Fortran, BASIC) Sequential Programming (Fortran, BASIC) Structured Programming (Pascal, C, Java) Structured Programming (Pascal, C, Java) Functional Programming (LISP) Functional Programming (LISP) Logic Programming (Prolog, LISP) Logic Programming (Prolog, LISP) Scripting & Coordination (Perl, JavaScript) Scripting & Coordination (Perl, JavaScript) Service-Oriented Programming (BPEL4WS, C#) Service-Oriented Programming (BPEL4WS, C#) Visual Programming (Visual BASIC) Visual Programming (Visual BASIC) Object-oriented Programming (Java, C++, C#) Object-oriented Programming (Java, C++, C#)

13 Spring 2005 13 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Language Evaluation Criteria Readability: How easy to read and understand programs? Readability: How easy to read and understand programs? Machine orientation vs. Human orientation Machine orientation vs. Human orientation In the context of the problem domain In the context of the problem domain Writability: How easy to create programs for a problem domain? Writability: How easy to create programs for a problem domain? In the context of the problem domain In the context of the problem domain Reliability: How easy to prevent, detect and handle errors? Reliability: How easy to prevent, detect and handle errors?

14 Spring 2005 14 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Language Evaluation Criteria – Readability Factors Simplicity Simplicity Number of basic components Number of basic components Feature Multiplicity Feature Multiplicity e.g., count = count + 1; count += 1; count++; ++count Operator Overloading Operator Overloading e.g., int a = b + 7; float x = y + 0.7; String s = hello + “world” int[] p = new int[] { 1, 2 } + new int[] { 3, 4 } int[] p = new int[] { 1, 2 } + new int[] { 3, 4 } Orthogonality: Fewer exceptions in combining primitive constructs Orthogonality: Fewer exceptions in combining primitive constructs e.g., void[] x = new void[10] Control Statement Control Statement e.g., while loop vs. goto statement Data Types and Structures Data Types and Structures e.g., timeOut = 1 vs. timeOut = true; a record array vs. a set of arrays Syntax Considerations Syntax Considerations Identifier forms: e.g., length restriction, case sensitivity Identifier forms: e.g., length restriction, case sensitivity Keyword selections: e.g., { } vs. Begin – End Keyword selections: e.g., { } vs. Begin – End Meaning: e.g., static variables vs. static methods in Java Meaning: e.g., static variables vs. static methods in Java

15 Spring 2005 15 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Language Evaluation Criteria – Writability Factors Simplicity and Orthogonality Simplicity and Orthogonality Abstraction: ability to define and use complicated structures or operations Abstraction: ability to define and use complicated structures or operations e.g., subprograms, interfaces e.g., subprograms, interfaces Expressivity: convenience in specifying computations Expressivity: convenience in specifying computations e.g.1, count++ vs. count = count + 1 e.g.1, count++ vs. count = count + 1 e.g.2, if (a == 2 && b == 3) vs. e.g.2, if (a == 2 && b == 3) vs. if (a == 2 and then b == 3) if (a == 2 and then b == 3) e.g.3, for vs. while e.g.3, for vs. while

16 Spring 2005 16 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University Language Evaluation Criteria – Reliability Factors Type Checking: testing for inconsistency in using data types Type Checking: testing for inconsistency in using data types Compile-time checking is more desirable Compile-time checking is more desirable Explicit type casting improves correctness Explicit type casting improves correctness e.g., int a = 3 / 5 + 4 / 7 e.g., int a = 3 / 5 + 4 / 7 int a = (int)((float)3 / 5 + (float)4 / 7) int a = (int)((float)3 / 5 + (float)4 / 7) Exception Handling: intercepting run-time errors and performing recovery actions Exception Handling: intercepting run-time errors and performing recovery actions Programs can continue its execution after the recovery action Programs can continue its execution after the recovery action Aliasing: having two or more referencing names for the same memory block Aliasing: having two or more referencing names for the same memory block Aliasing makes programmers hard to debug programs Aliasing makes programmers hard to debug programs e.g., pointers in C e.g., pointers in C Readability and Writerbility Readability and Writerbility

17 Spring 2005 17 ICE 1341 – Programming Languages © In-Young Ko, Information and Communications University HW#1 Among the programming languages described in Chapter 2, please choose 3 languages and summarize the following information about the languages: Among the programming languages described in Chapter 2, please choose 3 languages and summarize the following information about the languages: Historic background (1-2 lines) Historic background (1-2 lines) Programming domains Programming domains Programming paradigms Programming paradigms Special features Special features Pros and cons Pros and cons Questions Questions


Download ppt "ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University."

Similar presentations


Ads by Google