Introduction to Programming Languages Where do we start to understand programming languages as a core concept of Computer Science? There are literally.

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Spring 2010 CS 214 Programming Languages. Details Course homepage: cs.calvin.edu/curriculum/cs/214/ Important dates: February 19: Project language choice.
Object-Oriented Programming OOP John Gilligan School of Computing DIT Kevin St.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Programming Languages Structure
Computability to Practical Computing - and - How to Talk to Machines.
Chapter 9: The Tower of Babel Invitation to Computer Science, C++ Version, Fourth Edition Editied / additions by S. Steinfadt for SP09.
Chapter 9: The Tower of Babel
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Chapter 1: Introduction Spring 2006.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Computer Science and Software Engineering behind Blogging platforms and software Team ASU 101 for CS/CSE students.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
Programming Languages CPS120: Introduction to Computer Science Lecture 5.
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.
Computer Architecture Computational Models Ola Flygt V ä xj ö University
Chapter 9: The Tower of Babel Invitation to Computer Science, C++ Version, Third Edition.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Programming Languages – Primary Uses. FORTRAN, LISP, COBOL Supercomputing applications AI development Business software Fun Fact: The Terminator.
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
Programming History. Who was the first programmer?
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
C. Varela1 Programming Languages (CSCI 4430/6430) History, Syntax, Semantics, Essentials, Paradigms Carlos Varela Rennselaer Polytechnic Institute September.
Popular Programming Languages FORTRAN—the oldest high-level programming language; designed for scientific and mathematical applications. John Backus.
Analysis of Programming Languages (2). 2 LANGUAGE DESIGN CONSTRAINTS  Computer architecture  Technical setting  Standards  Legacy systems.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
Programming Languages
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Programming Language Paradigms Fall 2014
Akshata A. Naik Roll No: 11 B.L.I.Sc ( ) Assignment 1
CS 313 History of Programming Languages
Programming Language Paradigms ITSK2314 Lecture 3.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
PROGRAMMING WITH C ++.
CSCE 190 Programming Language Paradigms
The language focusses on ease of use
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
Carlos Varela Rennselaer Polytechnic Institute September 1, 2017
Problem Solving Using C: Orientation & Lecture 1
An Introduction to Programming
Programming Language History and Evolution
Evolution of programming languages
Problem Solving.
Problem Solving Using C: Orientation & Lecture 1
Programming Languages 2nd edition Tucker and Noonan
CSE 341 Programming Languages Autumn 2001
CSE 341 Programming Languages Autumn 2002
History and Background
Problem Solving Using C: Orientation & Lecture 1
Von Neumann Architecture
Principles of Programming Languages
Overview of Programming Paradigms
An Introduction to Programming
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

Introduction to Programming Languages Where do we start to understand programming languages as a core concept of Computer Science? There are literally thousands of programming languages.

Artifact (1) Paradigms (5) DSLs GPLs Kind of machines/programs (2) Key elements of a machine /program(2)

Paradigms: Imperative Functional Logic Object Oriented Parallel

DSL = Domain Specific Languages: HTMLVerilogLogoMata RSMathematica ExcelSQLYAClexers GraphViz

GPL = General Purpose (Programming) Language: Fortran (John Backus) Lisp (John McCarthy) Scheme PTL Scheme Racket Cobol (Grace Murray Hopper) Algol60 (John Backus and Peter Naur) Algol68 Pascal (Niklaus Wirth) PL/I Prolog (Alan Colmerauer) C (Ken Thompson and Dennis Ritchie)C++ (Bjorne Stroustrup) Ada Perl (Larry Wall) Python (Guido van Rossum) Ruby (Yukihiro Matsumoto) Java (James Gosling)

Kinds of Machines/Programs: 1 VNM = sequential 2 Multicore/cluster = parallel

Two Keys Elements of a Machine/Program: State Computation What does this look like in a VNM? State is captured in an ordered array of addresses Computation is expressed via an ordered list of instructions

Two Keys Elements of a Machine/Program: State Computation What does this look like in a parallel programming environment? State is captured in unordered sets Computation is expressed in logic = unordered set of declarative rules, each being an unordered conjunction of predicates

Characteristics for Parallel and Distributed Platforms: No guarantees of order of execution and communication Set-oriented approach (SQL) vs batch dataflow approach (MapReduce) Architectures with loose control over ordering (disorderly programming) Data parallelism vs task parallelism MapReduce, threads, MPI(message passing interface) OPL(Our Pattern Language) patterns for parallel programming Boom(Berkeley Orders of Magnitude) – Bloom language – Bud DSL in Ruby

So, what are we going to focus on?