COMP313A Programming Languages Introduction. More Housekeeping Stuff Reading Material Textbook –Programming Languages: Principles and Practice by Kenneth.

Slides:



Advertisements
Similar presentations
Principles of programming languages 1: Introduction (with a simple language) Isao Sasano Department of Information Science and Engineering.
Advertisements

Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Systems Software.
Comp 205: Comparative Programming Languages Semantics of Imperative Programming Languages denotational semantics operational semantics logical semantics.
Chapter 1Louden, Programming Languages1 For Ruby (and most other languages we will cover), you are given a ticket. We can’t possibly cover everything you.
you admittance to the “show”.
Detailed Design Kenneth M. Anderson Lecture 21
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Operational Semantics.
CS211 Data Structures Sami Rollins Fall 2004.
Programming Languages Structure
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
CS 101 Problem Solving and Structured Programming in C Sami Rollins Spring 2003.
Computer Software.
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
An Introduction to Programming Using Alice Object-Oriented Programming.
Elements of Computing Systems, Nisan & Schocken, MIT Press, 2005, Introduction: Hello, World Below slide 1www.idc.ac.il/tecs Introduction:
Elements of Computing Systems, Nisan & Schocken, MIT Press, 2005, Chapter 10: Compiler I: Syntax Analysis slide 1www.idc.ac.il/tecs.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
CSC1401: Introductory Programming Steve Cooper
Comp 311 Principles of Programming Languages Lecture 1 Course Overview and Culture Corky Cartwright August 25, 2008.
Elements of Computing Systems, Nisan & Schocken, MIT Press, Chapter 6: Assembler slide 1www.idc.ac.il/tecs Assembler Elements of Computing.
Object-Oriented Programming. An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
IT253: Computer Organization Lecture 1: Introduction Tonga Institute of Higher Education.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Lei Bu Preliminary Introduction to the Theory of Computation.
Chapter 1 - Introduction
The Beauty and Joy of Computing Lecture #3 : Creativity & Abstraction UC Berkeley EECS Lecturer Gerald Friedland.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
Programming language. Definition Programming language is a formal language designed to communicate instructions to a computer. Programming languages can.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
Chapter 7 Low-Level Programming Languages. 2 Chapter Goals List the operations that a computer can perform Discuss the relationship between levels of.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Compiler Design Introduction 1. 2 Course Outline Introduction to Compiling Lexical Analysis Syntax Analysis –Context Free Grammars –Top-Down Parsing –Bottom-Up.
1  1998 Morgan Kaufmann Publishers Where we are headed Performance issues (Chapter 2) vocabulary and motivation A specific instruction set architecture.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
1 CS308 Compiler Theory. 2 Course Information Instructor : –Prof. Minyi Guo –Yao Shen Course.
EPSII Lecture Section AAA 1505 SC Professor Terry A. Braun Biomedical Engineering, Ophthalmology and Visual Sciences.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden.
The Big Picture. My Story  Wrote great programs  Didn’t understand how they worked.
CSE-321 Programming Languages Abstract Machine E POSTECH May 1, 2006 박성우.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
CSCI N207 Data Analysis Using a Spreadsheet. Course Goals This is a technical course in which data analysis is the main emphasis and spreadsheet is the.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Review for Test 2 Chapters 5 (start at 5.4), 6.1, , 12, 13, 15.1, Python.
Programming Language Paradigms ITSK2314 Lecture 3.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
Why Study Automata Theory and Formal Languages?
IT253: Computer Organization
Information Science and Engineering
Algorithm and Ambiguity
Turing Machines.
CS 3304 Comparative Languages Fall 2011
Introduction CI612 Compiler Design CI612 Compiler Design.
CS 3304 Comparative Languages Fall 2011
Type Topic in here! Created by Educational Technology Network
CSCE156: Introduction to Computer Science II
Presentation transcript:

COMP313A Programming Languages Introduction

More Housekeeping Stuff Reading Material Textbook –Programming Languages: Principles and Practice by Kenneth C. Louden, PWD Publishing Company, 2003 Course Website –Lectures are available on the course website before the lecture –Assignments will be available on the course website –As much as is practical this will be a paper free course Journals e.g. ACM Transactions on Programming Languages and

More Housekeeping Stuff Read the Course Outline – – Check the Course Web Site regularly Read your regularly If you send me an question and don’t want the reply to go to the rest of class state so explicitly.

Course Motivation Why are programming languages the way they are? How are particular language features implemented/supported?

Course Motivation cont… understand the underlying ideas of the main programming paradigms know more about the huge variety of programming languages that are available nowadays understand how the syntax and semantics of languages can be defined precisely. know how important features are supported in several modern programming languages. have a deeper understanding of the history and rationale behind languages like C++.

Lecture Outline Overview and History Syntax and Parsing Data Types Control Structures ??? Functional Languages Issues Logic Programming Object-Oriented Language Issues

Programming languages you have used Programming languages you’ve heard of

Why Programming languages?

What is a programming language? From Louden (page 3) A programming language is a notational system for describing computation in machine-readable and human-readable form.

What are programming languages… Computation Anything that a computer can do –i.e. anything that is computable (by a Turing Machine) Most programming languages are Turing Complete. To be useful a programming language must interface to all the hardware devices and software packages that we need to use.

What are programming languages… Machine-readable The language must have a fixed syntax so that machine (computer) can read/parse programs. The language must have a fixed semantics so the computer knows what a program means and can execute it.

What are programming languages… Human-readable Or preferably, human understandable Much harder for larger programs The main challenge is controlling complexity –main tool abstraction The extent to which a programming language supports/enforces abstraction is an important issue

What are programming languages… The human-computer semantic gap Human: Interested in modelling the real world More interested in what computer should do than how Computer: Only data it can manipulate is sequences of zeros and ones. Understands low-level “how” instructions.

What are programming languages… High-level languages bridge the human-computer semantic gap by providing a higher level notation that can still be executed by computer

Language Implementation Language definition –syntax, semantics Language translation