Programming Languages FILS Andrei Vasilateanu

Similar documents
Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java Programming

Introduction to Java Programming CPIT 202. WEWwwbvxnvbxmnhsgfkdjfcn

History Introduction to Java Characteristics of Java Data types

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Advanced Object-Oriented Programming Introduction to OOP and Java

Course Syllabus. Programming Language Paradigms. Spring - DIS Copenhagen. Semester & Location: Elective Course - 3 credits.

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

OOPs: The Harsh Realities of Programming

An Introduction to Software Engineering. David Greenstein Monta Vista High School

Lecture 1: Introduction to Java

Grade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline

Programming Languages 2nd edition Tucker and Noonan"

Principles of Programming Languages. Lecture Outline

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

Introduction. A. Bellaachia Page: 1

Introduction to Java

Programmiersprachen (Programming Languages)

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have)

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Instruction Set Architecture

What is a programming language?

From High Level to Machine Code. Compilation Overview. Computer Programs

Special Topics: Programming Languages

NOTE: Answer ANY FOUR of the following 6 sections:

2 rd class Department of Programming. OOP with Java Programming

ADMINISTRATIVE MANAGEMENT COLLEGE

AP Computer Science A: Java Programming

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Module 1: Introduction to Computers, Programs, and Java

Computer Programming-1 CSC 111. Chapter 1 : Introduction

Why Study Assembly Language?

Lecture 1: Overview of Java

Class List. Java Must Have. Class Goals. Class Goals. Schedule

Java Programming. Zheng-Liang Lu. Java 308 Spring Department of Computer Science & Information Engineering National Taiwan University

Chapter 1: An Overview of Computers and Programming Languages. Objectives. Objectives (cont d.) Introduction

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)

Introduction to Programming

INFORMATION TECHNOLOGY COURSE OBJECTIVE AND OUTCOME

Paradigms of computer programming

Chapter 1 Introduction to Computers, Programs, and Java

DEPARTMENT OF COMPUTER SCIENCE

3D Graphics Programming Mira Costa High School - Class Syllabus,

ECS15, Lecture 10. Goals of this course 2/8/13. Mini-Review & Topic 3.2 Software. Today s agenda

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

Chapter 1. Preliminaries

Programming Languages, Summary CSC419; Odelia Schwartz

Lecture 1: Preliminaries

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Chapter 1 Introduction to Computers, Programs, and Java

CISC 124: Introduction To Computing Science II

Administration CS 412/413. Why build a compiler? Compilers. Architectural independence. Source-to-source translator

CHAPTER 1. Introduction to JAVA Programming

The Java Language: An Overview

Chapter 1 Preliminaries

Sri Vidya College of Engineering & Technology

Chapter 1. Preliminaries

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

5. (a) What is secondary storage? How does it differ from a primary storage? (b) Explain the functions of (i) cache memory (ii) Register

CS120 Computer Science I. Instructor: Jia Song

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Programming. Loriano Storchi.

2 Introduction to Java. Introduction to Programming 1 1

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures. Dan Grossman Autumn 2018

Chapter 1 Introduction to Computers, Programs, and Java. What is a Computer? A Bit of History

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

Concepts of Programming Languages

CMPT 379 Compilers. Anoop Sarkar.

Semester Review CSC 301

Java Programming. Zheng-Liang Lu. Java 301 Summer Department of Computer Science & Information Engineering National Taiwan University

Outline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003

CS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.

Programming Languages

Java Language Basics: Introduction To Java, Basic Features, Java Virtual Machine Concepts, Primitive Data Type And Variables, Java Operators,

TTh 9.25 AM AM Strain 322

Lecture 01 & 02 Computer Programming

Programming Languages Third Edition. Chapter 7 Basic Semantics

DIABLO VALLEY COLLEGE CATALOG

Computer Principles and Components 1

Principles of Compiler Construction ( )

Compilers and Assemblers

Object Oriented Programming

Chapter 1 Introduction to Computers, Programs, and Java

From C++ to Java. Duke CPS

The Sun s Java Certification and its Possible Role in the Joint Teaching Material

CS 415 Midterm Exam Spring 2002

Chapter 1: Introduction to Computers, Programs, and Java

Introduction to Java. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.

Transcription:

Programming Languages FILS 2014-2015 Andrei Vasilateanu

Course Master: Administration Andrei Vasilateanu, andraevs@gmail.com Teaching Assistants: Radu Serban Grading: Final exam 40% Laboratory 60% 2 Tests 30% Attendance 10% Homework + Activity 20% Course Policies: Individual HW, >50% in exam, no late HW

Bibliography The lectures are not enough, extra reading is necessary Romanian: L.D.Serbanati, C.Bogdan, Programare orientata spre obiecte cu exemplificari in limbajul Java English: C. Horstmann, G. Cornell, Core Java 2 K.Mughal, R. Rasmussen, Programmer's Guide to Java SCJP Certification http://docs.oracle.com/javase/tutorial/

Short context Specialization: Information Engineering Year 1 Year 2 Year 3 Year 4 Programming Languages Data Structures and algorithms Introduction to Web Programming Object Oriented Programming Operating Systems Databases Algorithm Design and Complexity Mobile Device Application Development Neural Networks and Genetic Algorithms Human Computer Interaction Functional Programming Software Development Methods Web Application Development Software Design Techniques Distributed Systems Artificial Intelligence Semantic Web Compiler Techniques

Overview of the course Introduction to PL and Java Language Fundamentals, Datatypes, Variables Expressions, Control Structures, Methods, Recursion OOP Basics Association Inheritance relations Polymorphism I/O in Java

Programming Languages Language = a set of symbols of communication and the elements used to manipulate them Natural languages (English, Romanian) Artificial (constructed) language Formal Language -> Programming Language Communicate instructions to the computer

Programming paradigms Paradigm = the set of practices that define a scientific discipline at any particular period of time Fundamental style of computer programming Imperative programming Machine-model based, State, HOW Object Oriented programming Programming with Data Types Functional programming Equations; Expression Evaluation Logic programming First-order Logic Deduction

Level of abstraction Machine-level (switches) Assembly language Use symbols instead of binary digits to describe fields of instructions Every aspect of machine visible in program: One statement per machine instruction. Register allocation, call stack, etc. must be managed explicitly. MOV AL, 61h ; Load AL with 97 decimal (61 hex) Avoids Absolute Addressing, Uses Symbolic Names High level language (FORTRAN, LISP, COBOL) http://amturing.acm.org/lectures.cfm

High Level Languages Most programs are created using a high level programming language such as Java, C, C++, or BASIC. With a high level language, a programmer creates a program using powerful, "big" operations which will later be converted into many little machine operations. A line from a program in the language "C": int sum = 0; The machine operations that correspond to this line: set up a small part of main memory to hold a number, store the number zero there, and arrange things so other parts of the program can use it. It might take a hundred machine operations to do all this. A source program (or source file) is a text file that contains instructions written in a high level language. It can not be executed (made to run) by a processor without some intermediate steps. Usually a source program is translated into a machine language program. An application program called a translator takes a source file as input and produces an executable program in an other programming language program as output. Compilation Interpretation

Type system How values and expressions are classified into types, how they are manipulated and how they interact Typed and untyped Verify if the operation is applicable to the type of data Static and dynamic typing Determine the type at compile or runtime Weak and strong typing Treating value of one type as the value of another type

Introduction to Java Java was originally designed for programming consumer devices, but it was first successfully used to write Internet applets. Java was designed to be safe and portable, benefiting both Internet users and students. The Java language itself is relatively simple, but Java contains a vast set of library packages that are required to write useful programs.

The Java Characteristics Sun Microsystems added features to Java that eliminate the possibility of creating code with the most common kinds of bugs. The Java designers eliminated manual memory allocation and deallocation. Memory in Java is automatically garbage collected. You never have to worry about memory corruption. They introduced true arrays and eliminated pointer arithmetic. You never have to worry about overwriting an area of memory because of an offby-one error when working with a pointer. They eliminated multiple inheritance, replacing it with a new notion of interface. Interfaces give you most of what you want from multiple inheritance, without the complexity that comes with managing multiple inheritance hierarchies. The Java Characteristics Object Oriented Distributed. An extensive library of routines for coping with TCP/IP protocols. Robust. A lot of emphasis on early and later dynamic (run-time) checking. Secure. Java enables the construction of virus-free, tamper-free systems. Architecture Neutral. It is generated an architecture-neutral object file format. Portable. No "implementation-dependent" aspects of the specification. Interpreted. The JVM can execute Java bytecodes directly on any machine Multithreaded Dynamic. It was designed to adapt to an evolving environment.

Java Execution Enviroment Phase 1 Editor The program is created with an editor and stored on the disk Phase 2 Compiler The Java Compiler creates the bytecode and stores it on the disk. Main Memory Phase 3 Class Loader The Classloader loads the bytecode in the memory. Phase 4 Bytecode Main Memory Bytecide checker confirms the program is correct and does not contradict the security measures. Main Memory Phase 5 Bytecode The interpreter reads the bytecode, translates it In the machine language and executes the result of the translation, storing the values of the data until the program is executed.

Java Application Program Development and Execution