Naming and Binding A computer system is merely a bunch of resources that are glued together with names Thus, much of system design is merely making choices.

Slides:



Advertisements
Similar presentations
Memory.
Advertisements

Symbol Table.
Part IV: Memory Management
Names and Bindings.
Assembler/Linker/Loader Mooly Sagiv html:// Chapter 4.3 J. Levine: Linkers & Loaders
Chapter 3 Loaders and Linkers
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
G. Levine Chapter 6 Chapter 6 Encapsulation –Why do we want encapsulation? Programmer friendliness- programmer need not know about these details –Easier.
CS 104 Introduction to Computer Science and Graphics Problems
Memory Management. 2 How to create a process? On Unix systems, executable read by loader Compiler: generates one object file per source file Linker: combines.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
An introduction to systems programming
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Computer Organization and Architecture
Chapter 91 Translation Lookaside Buffer (described later with virtual memory) Frame.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
1 Chapter 5: Names, Bindings and Scopes Lionel Williams Jr. and Victoria Yan CSci 210, Advanced Software Paradigms September 26, 2010.
CS333 Intro to Operating Systems Jonathan Walpole.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
MIPS coding. SPIM Some links can be found such as:
CIS250 OPERATING SYSTEMS Memory Management Since we share memory, we need to manage it Memory manager only sees the address A program counter value indicates.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
Introduction A variable can be characterized by a collection of properties, or attributes, the most important of which is type, a fundamental concept in.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Basic Semantics Associating meaning with language entities.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
CE Operating Systems Lecture 14 Memory management.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
COP4020 Programming Languages Names, Scopes, and Bindings Prof. Xin Yuan.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Overview: Lecture 6: Dolores Zage. What is a program? n Operations that are to be applied to certain data in a certain sequence (definition holds for.
CSc 453 Linking and Loading
Memory Management. 2 How to create a process? On Unix systems, executable read by loader Compiler: generates one object file per source file Linker: combines.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Operational Semantics (Slides mainly.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Chapter 8: Memory Management. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 8: Memory Management Background Swapping Contiguous.
Binding & Dynamic Linking Presented by: Raunak Sulekh(1013) Pooja Kapoor(1008)
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Implementing Subprograms
Assemblers, linkers, loaders
Chapter 10 : Implementing Subprograms
Non Contiguous Memory Allocation
Type Checking Generalizes the concept of operands and operators to include subprograms and assignments Type checking is the activity of ensuring that the.
Compiler Construction (CS-636)
Implementing Subprograms
Java Review: Reference Types
Design III Chapter 13 9/20/2018 Crowley OS Chap. 13.
Paging and Segmentation
Chapter 8: Main Memory.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Implementing Subprograms
Operating System Concepts
Segmentation Lecture November 2018.
Background Program must be brought into memory and placed within a process for it to be run. Input queue – collection of processes on the disk that are.
Main Memory Background Swapping Contiguous Allocation Paging
Lecture 3: Main Memory.
The Assembly Language Level
Chapter 2: Operating-System Structures
Chapter 8: Memory Management strategies
Virtual Memory Prof. Eric Rotenberg
An introduction to systems programming
Chapter 2: Operating-System Structures
CSE 542: Operating Systems
Implementing Subprograms
Presentation transcript:

Naming and Binding A computer system is merely a bunch of resources that are glued together with names Thus, much of system design is merely making choices regarding naming three abstractions in a system memories store named objects interpreters (processors and translators) manipulate named objects communication links connect named entities

Naming and Binding binding - assignment of name, value, or other attribute to an object the name can be symbolic, binary address, ... the value can be text, binary value, ... value name

Naming and Binding naming syntax: what are the rules in constructing a valid name? range: how many different objects can you name? order: binary numbers are ordered, add offset to one to construct another granularity: what size unit is assigned a name - bit, byte, word, block? homogeneity: array name is name of collection of homogeneous data, while struct/record name is name of collection of heterogeneous data

Naming and Binding naming (cont’d) dimensionality: vector, array, etc.? (true segmentation uses a two-dimensional name) context-dependent / overloaded name: abbreviated name must use some form of context to disambiguate; that is, a name resolution mechanism to resolve the name among multiple possible object references; context search rules typically called "scoping") aliases: multiple names for same object protection: do you associate access rights with names or with objects? (e.g., consider file system)

Naming and Binding binding type static binding - done once dynamic binding - done several times (dynamic binding of names usually requires a naming table) binding time - when done - e.g., compile time, run time early binding late binding, sometimes called lazy evaluation - done only when needed (e.g., "just-in-time" compiler) static, early binding - e.g., compile-time binding in a strongly-typed language, catch errors early, can execute efficiently

Naming and Binding binding time (cont’d) dynamic, late binding - e.g., run-time binding in an interpretative language, flexible, easier to debug, but often slow

Naming and Binding dynamic assignment of value dynamic naming static binding dynamic binding assemble time symbol name to address link time external addr. resol. relocation load time relocation run time (can be sub-divided, e.g. procedure-entry time) “dynamic” linking is really a misnomer, since binding done at run time on first call – this is lazy evaluation value to mem location parameter passing I/O buffers choosing ISR (through int. vect. table) segmentation/paging (thru seg/pg table) file system directory file index nodes linked list with dyn. memory allocation dynamic assignment of value dynamic naming (separate name table) name table is in links main advantage is speed (low overhead) main advantage is flexibility (ability to change named object without modifying the invoker of the name)

Naming and Binding quote attributed to David Wheeler of EDSAC fame "All problems in computer science can be solved by another level of indirection." also attributed to Butler Lampson Kevlin Henney corollary: "...except for the problem of too many layers of indirection."