Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advances in Language Design

Similar presentations


Presentation on theme: "Advances in Language Design"— Presentation transcript:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

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

13 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

14 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

15 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 ...

16 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

17 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++

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

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

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

21 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

22 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

23 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


Download ppt "Advances in Language Design"

Similar presentations


Ads by Google