Advances in Language Design

Slides:



Advertisements
Similar presentations
Operating System.
Advertisements

Lecture 11: Operating System Services. What is an Operating System? An operating system is an event driven program which acts as an interface between.
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
PZ13B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13B - Client server computing Programming Language.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
PZ11B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ11B - Parallel execution Programming Language Design.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
Introduction to Systems Architecture Kieran Mathieson.
OS Spring’03 Introduction Operating Systems Spring 2003.
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
Chapter 1 and 2 Computer System and Operating System Overview
Communication Models for Parallel Computer Architectures 4 Two distinct models have been proposed for how CPUs in a parallel computer system should communicate.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
Chapter 11: Distributed Processing Variations of subprogram control
Fundamentals of Python: From First Programs Through Data Structures
Computer Science 101 The Virtual Machine: Operating Systems.
Comparative Programming Languages hussein suleman uct csc304s 2003.
General What is an OS? What do you get when you buy an OS? What does the OS do? What are the parts of an OS? What is the kernel? What is a device.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
Parallelism Processing more than one instruction at a time. Pipelining
© 2009 Matthew J. Sottile, Timothy G. Mattson, and Craig E Rasmussen 1 Concurrency in Programming Languages Matthew J. Sottile Timothy G. Mattson Craig.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Chapter 1. Introduction What is an Operating System? Mainframe Systems
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Multi-core architectures. Single-core computer Single-core CPU chip.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Operating System Concepts Chapter One: Introduction What is an operating system? Simple Batch Systems Multiprogramming Systems Time-Sharing Systems Personal-Computer.
Chapter 1: Introduction. 1.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 1: Introduction What Operating Systems Do Computer-System.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
ECE200 – Computer Organization Chapter 9 – Multiprocessors.
Operating Systems CSE 411 Multi-processor Operating Systems Multi-processor Operating Systems Dec Lecture 30 Instructor: Bhuvan Urgaonkar.
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
O PERATING S YSTEM. What is an Operating System? An operating system is an event driven program which acts as an interface between a user of a computer,
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 4 Computer Systems Review.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Chapter 2 Parallel Hardware and Parallel Software An Introduction to Parallel Programming Peter Pacheco.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  What Operating Systems Do  Computer-System Organization  Computer-System Architecture  Operating-System Structure.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Review of Computer System Organization. Computer Startup For a computer to start running when it is first powered up, it needs to execute an initial program.
1 Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Agenda  Quick Review  Finish Introduction  Java Threads.
Computer Architecture Furkan Rabee
Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real.
Applied Operating System Concepts
Operating Systems : Overview
Operating Systems : Overview
Operating System Concepts
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating System Concepts
Parallel execution Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Presentation transcript:

Advances in Language Design 4/20/2017 Advances in Language Design Lecture 18: Dolores Zage

Topics Variations on Subprogram Control Parallel Programming 4/20/2017 Topics Variations on Subprogram Control Parallel Programming Formal Properties of Languages Language Semantics Hardware Developments Software Architecture

Where do advances come from? 4/20/2017 Where do advances come from? Formal models of the programming process experience->theory-> evaluation-> experience - programs have bugs, programming is hard theory -> structured programming, BNF grammars, data abstractions evaluation -> build languages using these concepts These have lead to further improvements object-oriented classes, SLR(1) and LALR(1) parsing techniques

Von Neumann Architecture 4/20/2017 Von Neumann Architecture Computer consists relatively large memory a much faster but smaller control memory CPU All present languages implement these features

Changes in hardware and software architecture 4/20/2017 Changes in hardware and software architecture Machines increase by a factor of 2 every 3 years same basic problem remains -> control memory and CPU are always about an order of magnitude faster than the larger main memory a computer spends much time simply waiting

Waiting Problem Solutions 4/20/2017 Waiting Problem Solutions Software that allows for more efficient use of the hardware by concurrency This permits the hardware to execute more efficiently by executing another program when one program is blocked waiting for data. However, programmers are poor in rewriting applications to handle concurrency

Waiting Problem Solutions 4/20/2017 Waiting Problem Solutions Another solution is develop more effective hardware More cache however the nature of computing of changing -> client/server

Variations on Subprogram Control 4/20/2017 Variations on Subprogram Control Four assumptions on our usual activation record explicit call statements are required subprograms must execute completely at each call immediate transfer of control at the point of call single execution sequence

Exception and Exception Handlers 4/20/2017 Exception and Exception Handlers Error conditions conditions detected by the virtual computer conditions generated by the semantics of the programming language unpredictable conditions tracing and monitoring

4/20/2017 Coroutines Drop the assumption to allow subprograms to return to their calling program before completion of execution. Two subprograms swapping control back and forth as each executes now used in simulation languages

Scheduled Subprograms 4/20/2017 Scheduled Subprograms Relax the concept that execution of a subprogram should always be initiated immediately upon its call one way to think of a call is it is to be scheduled for execution immediately can be thought of exception again used for discrete time simulation note no main, just a scheduler

Nonsequential Execution 4/20/2017 Nonsequential Execution Take away the assumption of single execution sequence Parallel programming Concurrent programming

Parallel Programming Multiprocessor system -> several CPUs 4/20/2017 Parallel Programming Multiprocessor system -> several CPUs Distributed or Parallel computer system has several computers each with its own memory and CPU connected with communication links into a network multiprogramming and time sharing major block - lack of support in PLs for the most part, languages use additional OS calls

Parallel Programming Languages 4/20/2017 Parallel Programming Languages Add complexity since several processors may be accessing the same data simultaneously need 4 concepts Variable definitions - mutable or definitional Parallel composition - a statement to define threads program structure - transformational or reactive communication - shared memory or messages

Commands of Concurrency 4/20/2017 Commands of Concurrency Construct to allow for parallel - the and statement 1 and statement 2 and … the statement beyond the and does not execute until all the parallel statements finish guarded statements - nondeterministic execution tasks - dependent semaphores ...

Formal Properties of Programming Languages 4/20/2017 Formal Properties of Programming Languages Chomsky Hierarchy Undecidability Is there a limit to what we can compute with a computer? Instead of writing a C program, can you write another program that reads a description of the C program (its source file) and determines whether it would halt

Programming Verification 4/20/2017 Programming Verification About the correctness and reliability languages are being designed with features that enhance these attributes assert in C++

Hardware Developments 4/20/2017 Hardware Developments Improve the performance of a single CPU develop alternative architectures

4/20/2017 Processor Design CISC - making instructions more powerful, fewer instructions, less movement of data RISC

4/20/2017 System Design Single bus crossbar switch Omega network

Software Architecture 4/20/2017 Software Architecture Persistent or transient data read in persistent data into transient data within the program and then rewrite the transient data back into the persistent storage this type of model is inefficient for some systems reservation system

Transaction System Program executing continually 4/20/2017 Transaction System Program executing continually reservations occur at any time just keep the data in transient problem of system going down and losing the transient updates solve this by a persistent programming language - no distinction between transient and persistent data

Networks and Client/Server Computing 4/20/2017 Networks and Client/Server Computing Major impact on programming language design is the lack of a global data store for the program. Both client and server only have limited access to the total information content of the program