<<

1/31/15

Program, Applicaon CS 240 in one sentence: Programming Language How does a run a program?

Welcome to Compiler/Interpreter

CS 240: Operang System Intro to Computer Instrucon Set Architecture Microarchitecture Systems Digital Logic Devices (transistors, etc.) ? Solid-State Physics circuitboard image: CC-BY-NC-SA ifixit.com

CS 240 first day

• Welcome • CS 240 team, logiscs, policies • Assignment 0 hp://cs.wellesley.edu/~cs240/ • Course overview • Lab!!! Everything is here. Please read it.

CS 240 in one sentence: Assignment 0, “due” Friday by 5pm. How does a computer run a program?

(required, but not graded)

Visit Ben’s office hours (or by appointment) by the end of this week to chat for a couple minutes about: 1. How to pronounce your name (if you think I’ll get it wrong). 2. What CS courses you have taken before. 3. What about CS 240 excites or concerns you. 4. Something about yourself that is not about CS 240. ? circuitboard image: CC-BY-NC-SA ifixit.com

1 1/31/15

Program, Applicaon CS 111 The Hardware/Soware Interface Programming Language and Computer Organizaon • What is hardware? Soware?

Soware • What is an interface?

CS 240 Part 1: Hardware/Soware Interface • Why do we need a hardware/soware interface?

• Why do we need to understand the hardware implementaon of this interface?

Devices (transistors, etc.)

Hardware HW/SW Interface Solid-State Physics 10

1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s 1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s

ENIAC (Electronic Numerical Integrator and Computer), Jean Jennings Bark and Frances Bilas Spence with part of ENIAC. First Turing-complete all-electronic programmable digital computer. The programmers of ENIAC were six women. University of Pennsylvania, 1940s hp://eniacprogrammers.org/, hp://sites.temple.edu/topsecretrosies/ Image: public domain Image: public domain

1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s 1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s

Manchester “Baby” SSEM (Small-Scale Experimental Machine), replica first stored-program computer -- University of (UK), 1948 Programming 1940s-style with switches and cables. Image: "SSEM Manchester museum close up" by Parrot of Doom - Own work. Licensed under Creave Commons Aribuon-Share Alike 3.0 via Image: public domain Wikimedia Commons - hp://commons.wikimedia.org/wiki/File:SSEM_Manchester_museum_close_up.jpg

2 1/31/15

1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s 1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s Machine Code Assemblers and Assembly Languages

(adds two registers and stores the result in a third) (adds two registers and stores the result in a third)

00000010100010101100100000010000 addl %eax, %ecx 00000010100010101100100000010000

Architecture specification Assembly language specification

machine machine assembly code Hardware Assembler code Hardware program program program

15 16

1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s 1930s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 2010s Higher-Level Programming Languages More and more layers…

x = y + z (adds two registers and stores the result in a third) • Operang systems • Virtual machines addl %eax, %ecx 00000010100010101100100000010000 • Hypervisors • Web browsers Language specification • … Compile me Run me

high-level machine assembly language Compiler Assembler code Hardware program program program

18 17

CS 111 Program, Applicaon Programming Language

Compiler/Interpreter

Soware Operang System CS 240 Instrucon Set Architecture

Microarchitecture

Digital Logic

Devices (transistors, etc.) Hardware Solid-State Physics

3