history of computing

Download History of Computing

If you can't read please download the document

Upload: pierre-vigneras

Post on 16-Apr-2017

3.590 views

Category:

Education


1 download

TRANSCRIPT

History of Computing

http://www.vigneras.name/pierre

Dr. Pierre Vignras

This work is licensed under a Creative Commons Attribution-Share Alike 2.0 France.See http://creativecommons.org/licenses/by-sa/2.0/fr/ for details

Text Books

Reference Book:New Perspectives On Computer ConceptsParsons and OjaNational Book FoundationThe Web: http://wikipedia.orgBooks

C- How to program (Third Edition)Introduction C++ and JavaDeitel & DeitelPrentice Hall

No entry after the first 10 minutes

No exit before the end of the class

Unannounced QuizWeekly, at the beginning of a class

Fixed timing (you may suffer if you arrive late)

Spread Out (do it quickly to save your time)

Papers that are not strictly in front of you will be considered as done

Cheaters will get '-1' mark

Your head should be in front of your paper!

Class, Quiz & Exam Rules

Rules

Grading Policy

Quiz: 20 %

Mid: 30 %

Final: 50 %

A final average below 50/100 will be assigned a failed mark: F.

Grading Policy

Outline
(Important points)

BasicsNumeral basis

Bits & Bytes

computer components

Hardware HistoryVon Neumann Architecture

Moore's Law

Theory HistoryGodel Theorem

Turing Machine, Lambda Calculus & Boolean Algebra

Algorithms (pseudo-code, flowcharts)

Computability and Complexity Theory

Language HistoryCompilation vs Interpretation

Type System

Type checking (static vs dynamic, weak vs strong)

Outline
(Important points)

Operating System HistoryDefinitions & Compositions

Eras (Unix, Apple, IBM PC, Mac, Windows)

Open Source (GNU, Linux)

Network HistoryInternet, Web, Search Engine

Network Layers (OSI, TCP/IP)

Network Topology

Outline
(Important points)

Outline

Basics

Computer: definition
(http://en.wikipedia.org/wiki/Computer)

OriginPerson who performed numerical calculations, often with the aid of a mechanical calculating device

TodayMachine for manipulating data according to a list of instructions known as a program.

Various sortSupercomputer, Mainframe, Servers

Personal Computers, Laptop

PDA, Cellular Phones, Smart cards

I. Basics

Vocabulary
(http://en.wikipedia.org/wiki/Digital
http://en.wikipedia.org/wiki/Bit)

Digital = discreteComes from digits (Latin origin = fingers)

Analogue = continuous (real life)

Bit = 1 binary digit Can have either the value 1 or 0

Used to represent (almost) everything

Physical representation: 1 == electricity is present

0 == no electricity

A byte is a collection of 8 bitsUnit for storage capacity

I. Basics

Numeral Bases

Base 10: DecimalBase 2: BinaryBase 8: Octal Base 16: HexadecimalCommon values:28=256216=65,536
210=1,024 (kilo)220=1,048,576 (Mega)230: 1 mega kilo (Giga)240: 1 giga kilo (Tera)1 kb = 1024 bits1 kB = 1024 bytes1 CD = 650 MB1 DVD = 4.5 GB1 photo ~ 2 MB1 character = 1 B1 text email ~ 5 kBI. Basics

Personal Computer Architecture

Screen

Motherboard

Processor (CPU)

Memory (RAM)

Extension Cards

Power Supply

Optical disk drive (CD/DVD)

Hard Disk Drive (HDD)

Keyboard

Mouse

I. Basics

Memory
(http://en.wikipedia.org/wiki/Random_Access_Memory)

Random Access Memory (Main memory)Erased when computer is shut down

A list of cellsEach cell is assigned an address (a number) and can store a fixed amount of informations (8, 16, 32 or 64 bits)

Memory can contains instructions or dataThe cell addressed #1234 contains 0101

0101 may means: the number 5 in decimal,

the character 'F',

the instruction: increase the value of the next cell by one

The first and third property are TRUE, others are FALSE,

Anything else...

I. Basics

0101:first bit: you like CS101second bit: you know CS101third bit: you want to know CS101four bit: you will repeat CS101

Central Processing Unit (Processor)
(http://en.wikipedia.org/wiki/CPU)

Reads instructions from the memory, executes them and writes the result in the memoryOperations possibleaddition, subtraction, multiplication, division

comparisons, string manipulations, ...

Driven by a timer Frequency = Number of ticks (cycle) per second

Performance = Instructions Per Cycle * FrequencyAMD Athlon XP ~ 2.5 IPC

Intel PIV ~ 2 IPC

At same clock speed, AMD Athlon performs better than Intel PIV

Connected with other devices by several bus

I. Basics

Input/Output Devices

Hard drivesStore permanently dataPrograms and data (documents)

Network cards (Ethernet card)Used to connect several computers

CD/DVD drivesRead-only storage devices (music, video, data)

Video Card (3D specialized hardware)Driven by the CPU to transmit data on screen(s)

Contains a Graphic processor (GPU)

Needs its own memory

I. Basics

The 2006 market

CPUs (future trends is multi-core)Intel: PIV (~ 3.8 GHz), Core Duo (~ 2 GHz)

AMD: Athlon 64, Opteron (~ 2 Ghz)

Memory: [512 1512] MB

Hard Drives: [60 800 ] GB

Network Cards: Ethernet: 1 Gb/s

Wireless (Wi-Fi): ~ 54 Mb/s

Video Cards: ~ 256 MB, 400 MHz

Screens: CRT 17' & 19'; TFT 15' & 17' (trend)

I. Basics

Internet
(http://en.wikipedia.org/wiki/Internet)

Worldwide, publicly accessible network of interconnected computer networks that transmit data using the IP protocol (language)

World Wide Web (WWW):collection of interconnected documents, linked by Hyperlinks and URLs

accessible via the Internet, as are many other services

www != Internet

You need a client application (called a web browser)

URL: protocol://address[:port]/ressourcehttp://images.google.com/preferences (www)

fish://192.168.1.1/documents (SSH)

I. Basics

Searching on the web

Search EnginesGoogle: http://www.google.pk

Yahoo: http://www.yahoo.com

How does it work?During the night, a robot scans the web and indexes web pages making pairs [word, {URLs}]

When you enter a keyword, the search engine look in its table for a matching [word, {URLs}]

It then present the set of {URLs}

Internet does not provide true informationsAnyone can write what he wants!

I. Basics

E-Mail

Works over the Internet like the normal (slow) mail system (also called snail)

You need a client application Can be a web browser (webmail)

Can be a dedicated mail reader

You should follow the netiquette (Internet Etiquette)Catch-all term for the conventions of politeness

See: http://tools.ietf.org/html/rfc1855 - RFC1855 (standard)
http://www.penmachine.com/techie/emailtrouble_2003-07.html (short)

I. Basics

Outline

History

Parallel Worlds

TheoryModels

Languages

Complexity

Computability

Cryptography

EngineeringHardwareProcessors, Hard drives, Memory, ...

SoftwareDesign, Operating Systems, Project Management, ...

Edsger Dijkstra: "Computer science is no more about computers than astronomy is about telescopes.

Using a computer does not make one a computer scientist!

II. History

Hardware http://www.eingang.org/Lecture/

II. History

Counting

From the very beginning, men started off by counting on their digits for various reasonsSharing food items fairly

Religion & ceremonies according to time

etc.

Many possibilities (base): 10, 16, 12, 6, ...

Some attempts to create counting machines Help counting up to big numbers

Abacus (China), Pascaline (Blaise Pascal, 1642), The Difference Engine (Charles Babbage, 1812)

II. History/Hardware

Cards

1890: Herman Hollerith presentsPunched Cards & Tabulating Machine

For U.S. Census Bureau

Used until the highly controversial United States presidential election of 2000

Tabulating Machine is a great success: creation of IBM by Herman Hollerith

Limited to tabulation

II. History/Hardware

Cards
(http://en.wikipedia.org/wiki/Punch_card)

II. History/Hardware

Cards
(http://en.wikipedia.org/wiki/Punch_card)

II. History/Hardware

Binary Representation

In 1941, Konrad Zuse creates the Z3

Uses binary system

II. History/Hardware

Engineering Improvements

Mark I (IBM, 1930-1959)Fully automatic machine

Four operations on 23 decimals numbers

Subroutines (logarithm & trigonometric functions)

3 to 5 seconds per multiplication

In use at Harvard until 1959

ENIAC (Mauchly and Eckert, 1946-1955)10 decimal-digits words

Wire your own instruction technique

II. History/Hardware

John Von Neumann
(http://en.wikipedia.org/wiki/Von_Neumann_Architecture)

Data and Program can be stored in the same spaceThe machine itself can alter either its program or its internal data

Conditional goto's to other point in the code

Often used subroutines can be stored in memory

First machine appears in 1947 (EDVAC & UNIVAC)Still the overall architecture of computers today!

II. History/Hardware

Von Neumann Architecture

II. History/Hardware

Major engineering advances

Transistors (Shockley, Bardeen, Walter; 1947)Freedom from vacuum tubes, which were extremely bulky

Integrated Circuits (Kilby, 1959)Aka chip

collection of tiny transistors which are connected together

only connections were needed to other electronic components

Machines becomes smaller and more economical to build and maintain.

II. History/Hardware

Moore's Law
(http://en.wikipedia.org/wiki/Moore's_law)

1965: Moore, a co-founder of Intel.The complexity of integrated circuits doubles every 24 months

Quoted as [...] doubles every 18 months!

Empirical Observations and predictiongoal for an entire industry.

Moore's law means an average performance improvement in the industry as a whole of over 1% a week.A new product that is expected to take three years to develop and is just two or three months late is 10 to 15% slower, bulkier, or lower in storage capacity!

II. History/Hardware

Moore's law

II. History/Hardware

Moore's Law effect

II. History/Hardware

Moore's Law limitation

2006 state of the artIBM published a paper for a 30 nm technology

April 2005 Gordon Moore stated in an interview that the law may not hold valid for too long, since transistors may reach the limits of miniaturization at atomic levels

2003: Kurzweil conjectureMoore's Law of Integrated Circuits was not the first, but the fifth paradigm to provide accelerating price-performance.

New type of technology will replace current integrated-circuit technology, and that Moore's Law will hold true long after 2020.

II. History/Hardware

General Moore's Law

II. History/Hardware

2006 Trends
(http://en.wikipedia.org/wiki/Multicore_CPU)

Major misunderstanding:Performance is not equivalent to clock speed !

Moore's law is not about doubling performance anyway!

Doubling the number of transistors:Put two CPUs on the same silicon die: dual-core

The future is multi-core systemsIntel, AMD, IBM, Sun are focusing on this

No need for a new CPU design: less risk

Major issue at the software levelHow to deal with concurrency?

Theory

II. History

The Godel Theorem (1931)
(http://en.wikipedia.org/wiki/Gdel's_incompleteness_theorems)

In some cases, it is possible to prove something and its contrary (inconsistency).

Some mathematical truth are impossible to prove (incompleteness)Idea: Any French is a lier has said by a French

Sketch of the proof: suppose a program 'P' can tell if a proposition is TRUE or FALSE without error.

Proposition: The program 'P' does not reply TRUE to this proposition.Can the program reply TRUE or FALSE? Neither!

And what about us? Is the proposition TRUE? Yes!

II. History/Theory

Alan Turing Machine (1936)
(http://en.wikipedia.org/wiki/Turing_machine)

Infinite tape (divided into adjacent cells)Each cell contains a symbol from some finite alphabet: {a, ..., z}; {0,...,9}; {0,1}

Headread/write symbols

move the tape left and right one cell at a time.

Table of instructions that tells the machine:what symbol to write

how to move the head

what its new state will be

State register that stores the (finite) state of the table. One special start state

II. History/Theory

Turing Machine (Abbrev: TM)
(http://en.wikipedia.org/wiki/Turing_machine)

II. History/Theory

Alan Turing Machine (1936)
(http://en.wikipedia.org/wiki/Turing_machine)

Stone (1972): fully description requiresThe alphabet

The input form in which the parameters are presented on the tape

The output form in which answers will be represented on the tape when the Turing machine halts

The initial state of the Turing machine

The machine program

II. History/Theory

Turing Machine
(http://en.wikipedia.org/wiki/Turing_machine)

Example: increment function: inc(x)=x+1Tape alphabet: {0,1}

Input: A number in base one enclosed by zero 010:0...010...0 110:0...0110...0
410:0...0111110...01010:0...0111111111110...0

Output: written in place of the input (same form)

s0s1s2

1,>>

0,1

0,>>

1,

0,1

0,>>

1,

0,1

0,>>

1,

0,1

0,>>

1,

0,1

0,>>

1,

0,1

0,>>

1,

0,1

0,>>

1, No reduction!

Logic and predicates
TRUE := xy. x, FALSE := xy. y
AND := pq. p q FALSE, OR := pq. p TRUE q
NOT := p. p FALSE TRUE,
IFTHENELSE := pxy. p x y

II. History/Theory

Basis of Programming Languages

Turing Machine leads to usual representation of algorithmsexpressed in an iterative way, in sequences of well defined steps

-calculus leads to another way of expressing algorithmsexpressed using only functions

Use recursivity extensively

Same expressive power than Turing MachineProven!

II. History/Theory

(defun f (n)(if (< n 2) 1 (* n (f (- n 1)))))II. History/Theory

Functionnal language Example
(http://en.wikibooks.org/wiki/Computer_programming)

Only functions

Prefix notation

Recursive call

(f 4) = 24 = 4! ; (f n) = n!Prefix notation example: f(x-y)+ z --> (+ (f (- x y)) z)Where are data types?Inferred!

Church-Turing Thesis
(http://en.wikipedia.org/wiki/Church-Turing_thesis)

hypothesis about the nature of computersdigital computer

human with a pencil and a paper following a set of rules.

claims that any calculation that is possible can be performed by an algorithm running on a computer, provided that sufficient time and storage space are available. may be regarded as a physical law or as a definition, as it has not been mathematically proven.

II. History/Theory

The Art of Computer Programming
(http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming)

Monograph written by Donald. E. Knuth

Started in 1962

2006: 7 Volumes !

Considered by the American Scientist as one of the best twelve physical-science monographs of the 21th century

Computer science community regards it as the first and still the best comprehensive treatment of its subject.

Bill Gates: "If you think you're a really good programmer... read (Knuth's) book...You should ... send me a resume if you can read the whole thing."

II. History/Theory

Gives solutions to common programming problems found in computer sciencesData structures, sorting, searching, lexical analysis, graphs, ...

Complexity analysis of each solution is also describedExample: number of steps required to sort a list

Algorithms are written in pseudo-assembly language called MIXMay be hard to understand

Accessible algorithms textbooks use high-level languages

II. History/Theory

The Art of Computer Programming

Complexity Theory
(http://en.wikipedia.org/wiki/Computational_complexity_theory)

Study the resources, or cost, of the computation required to solve a given computational problem.

Cost is measured in terms of abstract parameters such as time and spacecomputational resources.

Time: number of steps required

Space: quantity of information storage required

A Complexity Class is the set of all of the problems which can be solved using a certain amount of a certain computational resource.

II. History/Theory

Complexity Theory
(http://en.wikipedia.org/wiki/Computational_complexity_theory)

Tradeoffs between time and space

Alternative algorithm may require less time but more space (or vice versa) to solve a given problem.

Parallel processors can also be considered."parallelizable time" and "non-parallelizable time" (i.e. sequential time) are considered.

Sequential time gives a limit to how far the computation can be parallelized. Some steps must be done sequentially because they depend on the results of previous steps.

II. History/Theory

Practical Complexities

II. History/Theory

Practical Complexities

II. History/Theory

Complexities below exponential are practically feasible

Complexities Consequences

www.top500.org: best computers in the world

2006: next generation will be beyond PetaFLOPS/s10^12 instructions per second!

For a problem of size 100Algorithm in n2 instructions requires
100*100 = 10,000 instructions, less than 1 second

Algorithm in 2n requires 2100 instructions

2100 > 10^30 instructions, more than 400 millions of years of computation!!

II. History/Theory

Example:
Travelling Salesman Problem (TSP)

Given: a set of cities,

the distance between them

Find the cheapest round-trip route that visits each city exactly once and then returns to the starting city

Brute force requires n! stepsBest algorithm requires 2n stepsII. History/Theory

Polynomial Complexity Class: P
(http://en.wikipedia.org/wiki/P_(complexity))

P is the set of decision problems that can be solved by a TM in polynomial time. Intuitively, set of problems which can be effectively solved in the worst cases

Examples:Greatest Common Divider,

Sorting, Searching, Merging, ...

is a number prime (proven in 2002)

Majority of problems in P are practically feasiblesRare are the ones that needs n10000 steps!

II. History/Theory

Non-deterministic Polynomial Complexity Class: NP
(http://en.wikipedia.org/wiki/NP_(complexity))

The complexity class NP is the set of decision problems that can be "verified" by a TM in polynomial timeThey may not be solved by a TM in polynomial time but the answer should be checkable efficiently (in polynomial time)

Examples:Integer factorization

Decision version of the TSP (is there a route with cost < x?)

Subset-sum problem (is there any subset of {-2, -3, 15, 14, 7, -10} that sum to zero?

II. History/Theory

P vs NP
(http://en.wikipedia.org/wiki/Complexity_classes_P_and_NP)

P: the set of easy to solve problems

NP: the set of easy to check problems

P NP Easy to solve problem are also easy to check!

Is the reverse true: is P NP, hence is P == NP?Is an easy to check problem, easy to solve?

Concept of NP-completenessNP-complete problems are the most difficult problems in NP

II. History/Theory

NP-Complete Problems
(http://en.wikipedia.org/wiki/NP-complete)

A decision problem C is NP-C if:it is in NP and it is NP-hard (every other problem in NP is reducible in polynomial time to it)

A reduction is a transformation of one problem into another problem. Intuitively, if problem A is reducible to problem B, a solution to B gives a solution to A. Thus solving A cannot be harder than solving B (we write A B)

TSP is NP-CompleteSo any instance of any problem in NP can be transformed mechanically into an instance of the TSP problem in polynomial time!!

II. History/Theory

Consequences

If one find a polynomial algorithm that solves TSP, then polynomial algorithms can be provided for any other problems in NP

And in this case,
P == NP!!II. History/Theory

List of NP-C Problems
(http://en.wikipedia.org/wiki/List_of_NP-complete_problems)

First NP-C by Cook in 1971The boolean satisfiability problem (very complex proof)

Proof by reduction was then used to show than many other problems are NP-C (more than 3000 are known to be NP-C problems)!

TSP is just one of them

Many important problems are NP-CMathematics, Physics, Computer Sciences, Biology, Finance, ...

II. History/Theory

The big question: is P == NP ?

Not a single fast algorithm for any of the known NP-C problem is known

Hence, we don't know if P==NPUnsolved question in theoretical computer science.

One of the most important unsolved problems in all mathematics.

The Clay Mathematics Institute has offered a USD 1,000,000 prize for a correct solution.

2002: poll of 100 researchers: 61 no, 9 yes, 22 unsure, 8 impossible to prove or disprove!

II. History/Theory

Theory of Computation
(http://en.wikipedia.org/wiki/Theory_of_comp)

Two major fields

Computability theory (Turing, Church, Bool)Is a given problem computable?

Complexity Theory (Knuth et al.)How much ressources (instructions, storage) are required to compute a solution for a given problem?

Some problems are theorically computable but seems practically unfeasible (take centuries even with the tomorrow best machine available).Example: Factorisation of big prime numbers (crypto)

Still not proven today!

II. History/Theory

Languageshttp://en.wikipedia.org/wiki/History_of_programming_languages

II. History

Programming Languages
(http://en.wikipedia.org/wiki/Programming_languages)

Writing program in the machine language called assembly language -- is painful and error prone

Define languages that are more or less human friendly Use a syntax, a grammar and define the semantic

Translate human-friendly languages into machine languageCompilation: translate entirely, then execute

Interpretation: translate partially, then execute (repeat until the end of the program)

II. History/Languages

Operating SystemCompilation vs Interpretation
(http://en.wikipedia.org/wiki/Interpreted_language
http://en.wikipedia.org/wiki/Compiled_language)

X=20;
while(X > 0) {
PRINT X;X := X-1;
}011001010110110110100101011010101011001100110010101011011001010100011000001110101010101001
InputCompilerOutput

InterpretorX=20->0110While->1010InputSource
file

Executable
file

Executable
file
runningSubmissionII. History/Languages

Compilation vs Interpretation
(http://en.wikipedia.org/wiki/Interpreted_language
http://en.wikipedia.org/wiki/Compiled_language)

In theory, any language can be interpreted or compiled (implementation problem)

In practice, language designers make choices that ease either interpretation or compilationStatic variable type declaration (i.e. number, characters)

Compilation Pros: speed, error checking

Cons: complexity, long edit-run cycles

InterpretationPros: short edit-run cycles, flexibility

Cons: slow, lack of checks

II. History/Languages

Mixed mode

Compile source code into a bytecode Perform all required checks

Bytecode is independent of any real hardware architecture

Interpret the bytecodeA bytecode interpreter is required on each hardware you want to run your (compiled) program on

Write once, run anywhereThis is called transportability: only the bytecode is needed to execute a program, neither the source nor the machine dependant code.

II. History/Languages

Programming Paradigms
(http://en.wikipedia.org/wiki/Programming_paradigm)

Logic ProgrammingDefine assertions to find a goal

Based (roughly) on the Boolean Algebra

Imperative languagesList of statements that change a program state

Based on the Turing Machine model

Functional languagesSequence of stateless function evaluations

Based on the Church -calculus

II. History/Languages

Type System
(http://en.wikipedia.org/wiki/Type_system)

Anything in a computer is represented by 0&1How to distinguish 1110 (eleven), 112 (three), and 11 the string of two characters '1' and '1'?

A type give a meaning to a collection of bits inform programs and programmers how they should treat a given collection of bits.

hardware makes no distinction between memory addresses, instruction code, characters, integers and floating-point numbers.

II. History/Languages

Type Functions

SafetyHello World/3 is meaningless

Documentation Integer x = 24; versus Age x = 24;

Abstractione.g: String represents an abstract data type

The underlying implementation (typically) uses an array of characters

Functions can be defined on String without any knowledge of their actual representationSubstring(String s, String p), Match(String s, String p), getChar(Index i), ...

II. History/Languages

Type Checking

Verify and enforce the constraints of types

Static type checkingAt compile time

Dynamic type checkingAt runtime

II. History/Languages

Static vs Dynamic

Static ProsReliability

Optimisation for runtime speed

Documentation

Static ConsMore things to write

Illusion that the code is safe

Longer Edit-Compile-Test-Debug cycle

Dynamic ProsRapid prototyping

Edit-compile-test-debug cycle reduced

Generic constructions (eval function over anything)

Metaprogramming easy

Dynamic ConsRuntime speed

II. History/Languages

Strong vs Weak Typing

var x := 5; // (1) var y := 20; // (2) var z := x + y;// (3)Is this allowed?Strong typing: refused because x and y are of inconsistent type.

Weak typing system: acceptedResult can be: 25 or 25 or 520 ...

Depends on the language

II. History/Languages

Primitive Types
(http://en.wikipedia.org/wiki/Primitive_type)

Basic building blockAny other data type is a composition of primitive types

Integer, booleans, characters, floating point numbers

ReferenceAn abstract value refering to another object's possibly a much larger one.

Operations on primitive types are usually mapped to direct machine instructionFastest operation available

II. History/Languages

Primitive Type Representation in C
(Int, Bool & Char)

Integer: binary notation on 32 bitsSigned [-231,231-1] & unsigned [0,232-1]

Boolean: FALSE == 0, TRUE == !FALSE

Character: encoding in ASCII (1 byte)33 non-printable characters (ENTER, DELETE, ...)Control characters

95 printable characters inluding space
!"#$%&'()*+,-./0123456789:;?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~

II. History/Languages

ASCII Table
(http://en.wikipedia.org/wiki/ASCII)

Only 127 valuesOnly English

Extensions to 255 valuesSpanish, French, ...

Unicode is a better encoding16 bits, 65536 values

Any language in the world!

Supported by new OS and languages

II. History/Languages

Real numbers and
other-than-decimal bases

How to represent 0.1 in base 2?320.14 = 3.10+2.101+0.100+1.10-1+4.10-2

so, in a base b, we have
(an...a1a0.c1c2...)b = an.bn +...+a1.b1+a0.b0+c1.b-1+c2.b-2+...


(0.1)10=(1)10/(10)10=(1)2/(1010)2=(0.000110011001100....)2
=(0.00220022...)3=(0.01212...)4...

(1/3)10=(0.33...)10=(0.1)3

p=(11.0010010000111111011010101...)2

II. History/Languages

The IEEE 754 standard

Float: 32 bits, double: 64 bits

II. History/Languages

Mantissa is normalized: always a '1' before
the comma (hidden bit)
0.0000111010x20
0.000000111010x22
1.111010x2-5

all represent the same number!Exponent is biased: only positive values
[-127,128]=[0,255]-127

IEEE 754 Standard Example

Consider only 5 bits (1,2,2) biased is 1

2

1

3

4

5

6

7

0

1.5

1.25

1.75

2.5

3.5

0.875

All
Positive
Numbers

0.5

0.75

0.625

-0.5

II. History/Languages

No representation for 0 (zero)Reserve 0 00 00 and 1 00 00 for (+0 & -0) (symetric)

We lose +0.5 and -0.5

IEEE 754 Standard Example
Problems & Solutions

2

1

3

4

5

6

7

1.5

1.25

1.75

2.5

3.5

0.875

0

0.75

0.625

-0.625

II. History/Languages

Big hole around 0 Reserve 'e=0' for denormalized numberThe hidden bit is '0' in this case: 0.20+(m)
0 00 01 = 0.20+0.2-1+1.2-2=0.25
0 00 10 = 0.20+1.2-1+0.2-2=0.5
0 00 11 = 0.20+1.2-1+1.2-2=0.75

IEEE 754 Standard Example
Problems & Solutions

2

1

3

4

5

6

7

1.5

1.25

1.75

2.5

3.5

0

0.75

0.5

-0.25

-0.5

0.25

-0.75

II. History/Languages

Define meaning for infinite and indefiniteReserve e=3 for that purpose

IEEE 754 Standard Example
Problems & Solutions

2

1

3

1.5

1.25

1.75

2.5

3.5

0

0.75

0.5

-0.25

-0.5

0.25

-0.75

II. History/Languages

Even if we cannot represent all integers (infinite), we can represent correctly a small interval

With real numbers, it is not possible!!Between two reals, you can always find a new one!

So we can only represent a subset of rationals ()

Computing with floating points is very time consumingSpecific hardware for that purpose (integrated FPU)

Floating Point Operations/second (Flops) is a standard metric of processor performance.

2006: IBM Blue Gene: 65536 Dual-Processor (PowerPC )
360 TeraFLOPS!

Problems with the representation of real numbers

II. History/Languages

Primitive Type Representation in C
(pointers)

References are implemented as pointers Pair (a,t) where:

a : is an integer representing a RAM cell address

t : is a type that gives the interpretation of the memory cells that starts from address at is mandatory, how can you know how to interpret the data at the given address 'a' otherwise?

II. History/Languages

'int* p': declares a reference (a pointer) called p on an 'int' value'p' holds a number (a positive integer called a word)

'&v' is the address of the variable v in the RAMIt is a number (a positive integer called a word)

*p holds the value contained in the cell at address 'p'

Primitive Type Representation in C
(pointers)

II. History/Languages

char c = 'A';

char* pc = &c;

*(pc+1)='C';

*((int *) (pc)) = 'D';

&pc

65???&c

6667??&c

65???&c

00068&c

*pc = 'B';

66???&c

We can change
the content of the
memory through pointers.We can do
some arithmetic
with pointers.We can change
the type
of a data (cast).Using Pointers
(in C)

'&' == "address of"

II. History/Languages

Pointers Manipulation

The pointer concept is a very efficient mechanism to manipulate directly the memoryAlmost everything is possibleUsed for system programming

Also responsible for the vast majority of bugs

New trend is to forbid the use of pointers (Java, C#)

In C, arrays, functions and strings are de facto pointerschar * s = "Hello World";

char[] c = s; *(c+1) = '3'; printf(s);
--> H3llo World

II. History/Languages

Important Languages

1954 FORTRAN (imp., comp., static, strong)Designed for scientist

Versions for Parallel Machine

1958 LISP (func., inter & comp, dyn, strong)Based on -calculus

Used in Artificial Intelligence

1959 COBOL (irrelevant, comp, static, strong)For Business

Still widely used but no more learnt

II. History/Languages

Important Languages

1964 BASIC (imp, inter. & comp, static, weak)For beginner

1970 Pascal (imp, comp, static, strong)Structured programming

1972 C (imp, comp, static, weak)System programming

UNIX Systems (and Linux) are written in C

Gnome is written in C

1972 Smalltalk (imp, mixed, dynamic, strong)Object Oriented (OO) Programming

II. History/Languages

Important Languages

1972 Prolog (logic, inter, dynamic, strong)Based on Boolean Algebra

Natural language processing

1978 SQL (irrelevant, inter, dynamic, strong)Database oriented languages (Query)

1983 Ada (imp, comp, static, strong)Embedded and real-time systems

Ariane space launcher

II. History/Languages

Important Languages

1983 C++ (imp, comp, static, ~strong)Patchwork of C ;-)

Claim to be an OO Language ;-)

Widely used because of Microsoft adoption

Windows (95, 98, NT, XP) is written in C++

KDE is also written in C++

1985 Eiffel (imp, comp, static, strong)True OO Language!

Design by contract (software quality)

II. History/Languages

Important Languages

1987 Perl (imp, inter, dynamic, weak)Easy & Widely used by web designers

1995 Java (imp, mixed, static & dyn, strong)write once, run anywhere language

Widely used (smartcards to supercomputers)

Object Oriented

2000 C# (imp, mixed, static & dyn, strong)Microsoft defence against Java

Similar to Java on many aspects

II. History/Languages

Language Trends

RubyMulti-paradigm programming language

Concurrency and distributionE: java based

C: microsoft based

And many others...

II. History/Languages

Operating Systems

II. History

Objectives

Theories provide strong fondations to: Express algorithms (TM, -calculus, ...)

To analyse them (Computability/Complexity)

Languages have been defined to help in the writing of programs (hence algorithms)

Even if not required, a computer system usually has an operating system.

II. History/OS

OS definition

No widely admitted definition

Fact: a computer is made of several partsdevices (keyboard, hard drive, memory, CPU, ...)

programming them is a very complex taskthe OS provides an abstract view of the real machine that is much simpler to programData on an hard drive is seen as an organized collection of files instead of a collection of bits

their management should be optimalthe OS handles all different resources for the userIf three print jobs are simultaneously submitted on the same printer, they should be queued

II. History/OS

OS composition

kernel (strictly equal to OS)handles resources and provides the abstract easy to program machine

shellinteraction with the user through command line

Syntax: command -option parametere.g: mail -u [email protected] Mail example

Applications for System AdministrationManaging user accounts

Managing storage spaces

Managing devices

II. History/OS

OS composition

Graphical User Interface is not (and should not) be part of an OScode complexity

security

GUI provides a user-friendly way of using a computer

Some OS neither have a shell nor a GUIEmbedded devices (satellite, smart cards, ...)

II. History/OS

pre-Multics systems

1950: computers were giant personal computersOnly one user at a given time

1960: Batch systemsUsers submit their job to the operator (cards)

Operator groups jobs into batch and enter them for execution

Most of the time, the CPU is idle waiting for some input (user, disk, network, ...)

1962: Time sharing (CTSS at the MIT)When the CPU is idle for one job/user, execute/resume another one

II. History/OS

Market evolution: Multics

1964: Success of CTSS leads to MulticsBy the MIT, Bell Labs and General Electric

Very advanced operating systemHundreds of users on a pre-Pentium machine (Intel 386)!

Hardware components could be added at runtime (even CPU)

Not a success anyway: too much in advance! ;-(

Many ideas of current operating systems comes from it!

Highly influential!

1970: Unix comes out from Ken ThompsonWorked at Bell on Multics before Bell pulled out

He developed a smaller Multics version called Unics, that should do only one thing, but do it well.

II. History/OS

Market evolution: the Unix fashion

1974: Research paper by Ritchie & Thompson Describe the Unix system (re)-written in the C language

Received the prestigious ACM Turing Award

Many universities asked for a copy of Unix

Unix: widely adoptedAvailability of the source code: modifications by any one to fit the needs

USENIX Conferences --> lots of enhancements

80's: The Portability Chaos Many Unix existed (and still exist), some are incompatibles --> POSIX (Portable Operating System)

Commercial failure for IBM, Sun, Bell, ... and Microsoft!

II. History/OS

Unix Wars

II. History/OS

The Home Computer Era
(http://en.wikipedia.org/wiki/History_of_computing_hardware_(1960s-present))

1973: Xerox Alto mini-computerfirst mouse and GUI concept

1975: MITS Altair 8800 first home computerGreat success: 10,000 shipped

Paul Allen and Bill Gates developed a BASIC interpreter for the Altair, and then formed Microsoft.

CP/M-80 is the OS developed by Digital Research

1977: Apple II phenomenon Steve Jobs founded Apple Computer.

Color graphics, open architecture, floppy disk drive

II. History/OS

The IBM Personal Computer Era
(http://en.wikipedia.org/wiki/History_of_computing_hardware_(1960s-present))

Many other concurrentCommodore, Atari, Amiga, ...

Closed architecture --> disappeared

1981: IBM PC modelIBM replied to Apple

Open architecture

Uses Intel 8088 processor

OS: MS-DOS provided by MicrosoftMS-DOS is based on QDOS, a CP/M compatible OS which Microsoft had obtained the copyrights.

Digital Research refused to provide CP/M to IBM in 1980

II. History/OS

The Mac Era
(http://en.wikipedia.org/wiki/History_of_computing_hardware_(1960s-present)
http://en.wikipedia.org/wiki/Apple_Computer)

1981: Xerox StarBit-mapped display, windows-based GUI, icons, folders, mouse, Ethernet networking, file servers, print servers and e-mail.

1984: Apple MacintoshFirst mass-marketed microcomputer with a GUI

Standard for the personal computer for years

Until 1990 in the IBM PC worldGaming is the big market

It requires power --> faster CPU, bigger RAM, ...

II. History/OS

The Microsoft Era
(http://en.wikipedia.org/wiki/Microsoft_Windows
http://en.wikipedia.org/wiki/Windows_NT)

1990: Windows 3.0 by Microsoft First GUI in the IBM PC world

On top of MS-DOS (highly limited)

1995: Windows 95, 1998: Windows 98Still based on MS-DOS

End of Apple domination until 1998 with the iMac series by Steve Jobs

1993: Windows NT 3.1Fully 32-bits OS written from scratch

Uses concepts derived from DEC VAX OS

2001: Windows XP, is in fact NT v 5.1

II. History/OS

The Open Source Revolution
(http://en.wikipedia.org/wiki/GNU)

1983: Richard Stallman quit its job at MITRefused to work in a closed environment

Creates the GNU project: a free operating systemFree as in free speech: free to study and modify the code as it was in the 60's and 70's

1985: RS creates the Free Software Foundation

1989: Creation of the GNU Public LicenceBasically, you can redistribute (even a modified version of) a GPL software but with its code

Virus-like licence

You can sell a GPL software (Redhat, Suse, ...)

II. History/OS

The GNU Project
(http://en.wikipedia.org/wiki/GNU)

GNU means Gnu's Not UNIX (recursive)Should be UNIX compatible anyway

GNU Hurd will be the name of the kernel

1990: GNU System almost completeCompiler: GNU C Compiler

Editor: GNU Emacs

All other parts (shell, libraries, GUI, ...)

A lot have been done but, the kernel (Hurd) is the only piece that is missing...

II. History/OS

The Linux Kernel
(http://en.wikipedia.org/wiki/Linux_kernel)

August 1991: Linus Torvalds posts in InternetI'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. [...] I'd like any feedback [...].

He wrote a kernel, using all the GNU tools

A kernel was the only thing that GNU was lacking to become operational

Evolution:1991: v 0.01 (10,239 lines of code)

2006: v 2.6.16.11 (6,981,110 lines of code)

Big support from IBM, HP, ...

II. History/OS

GNU/Linux Distributions
(http://en.wikipedia.org/wiki/Comparison_of_Linux_distributions
http://en.wikipedia.org/wiki/Linux)

Distribution: GNU + linux kernel + tools for system administrationInstalling the system

Installing, upgrading, removing softwares

Configuring softwares

Many flavorsUser friendly: Fedora, Mandrake, Suse, Ubuntu

LiveCD: Knoppix, Mandrake-CD

Stability: Debian

Source based: Gentoo

II. History/OS

Other open source UNIX projects

BSD based (Open source)FreeBSD (Optimized for x86)

NetBSD (Portable)

OpenBSD (Security)

Sun Solaris (Open Source)For SPARC and x86

Designed for the industry (stable, ...)

And many others...

II. History/OS

Open Source Equivalences
(http://en.wikipedia.org/wiki/List_of_open_source_software_packages)

GUI: Windows (Microsoft), Darwin (Mac OS X)KDE, GNOME, CDE, Enlightenment, ...

Web Browsers: IE (Microsoft), Safari (Mac OS X)Firefox (available on Windows), Konqueror

Email: Outlook (Microsoft)Evolution, Kmail

Office Suite: MS Office (Microsoft) OpenOffice (available on Windows), KOffice

Image Manipulation: Photoshop (Adobe)The Gimp

etc...

II. History/OS

File System
(http://en.wikipedia.org/wiki/File_system)

Method for storing and organizing compuer files and the data they containEasy to find, and access

Usually use an underlying storage device Hard Drive

CD-ROM

USB Stick

Not requiredNetwork connection

Any informations (/proc on Linux)

II. History/OS

File System
Files & Directories

A directory (folder) is a mapping between a file name and the actual file (data)

Directory structure can be:Flat: all files into one folder

Hierarchical: folder can contain files and folders

AttributesPermissions (owner, groups, others in UNIX)

Creation, Modification date

Extended AttributesIcons, Author, ...

II. History/OS

File System
Files & Directories

In console mode,'.' means the current directory

'..' means the parent directory

MS-DOS comes from CP/M which comes from UNIX hence the similaritiesHierarchical File System

Shell and command (cp, mv, ...)

Unfortunately Bill Gates also wanted to mark its differencesHence drive letters (A:, B:, C:, ...)

Hence the '\' vs '/' as a path separator

Problems nowadays when building applications for both world!

II. History/OS

File System Issue Example:
External Fragmentation
(http://en.wikipedia.org/wiki/Fragmentation_(computer))

Remove C,E

ABCDFEAB

D

FCreate:

G=

G1G2+

ABG1DFG2

After many operations (Create, Remove):

Leads to performance problem: reading the red file
requires 4 movements. Hard Drives are 1,000,000 times slower
than CPU!

II. History/OS

File System Issue Example:
External Fragmentation
(http://en.wikipedia.org/wiki/Fragmentation_(computer))

Solutions:Windows (FAT, NTFS): defragmentRun a software that reorganize files in a contiguous manner.

30 % of available free space is recommanded for the defragmentation process (source: Microsoft)

UNIX: keep external fragmentation below a given treshold (~5, 10 %)When file system operations are performed, it uses a smart algorithm.

Works very well when the free space available is above 20%

II. History/OS

Other OS Issues

Process SchedulingEnsuring fairness, performance, throughput, interactivity, all at the same time!

Dealing with multi-CPU, multi-cores, multi-threads, ...

Memory ManagementPreventing fragmentation

Efficiency (cache, ...)

And also...Security, stability, reliability, usability, ...

II. History/OS

Networking

II. History

http://en.wikipedia.org/wiki/Computer_networking

Networking Needs

Now we have:Computer Hardware

Theory to describe algorithms

Languages to write algorithms

Operating Systems to manage resources to make the use of hardware user and programmer friendly

Problem at the beginning:few computers were available;

Lots of researchers widespread

How to share the access to costly computers?

II. History/Network

Computer Networking Definition

Scientific (research) and engineering discipline concerned with communication between computer systems.

Involve at least two devices Usually, at least one is a computer.

Devices can be separated by:a few meters (e.g. via Bluetooth)

or thousands of kilometers (e.g. via the Internet).

Computer networking is sometimes considered a sub-discipline of Telecommunication

II. History/Network

Pre-ARPANet Era

Before 1940, carrying instructions between calculation machines and early computers was done by human users.

1940 George Stibitz used a teletype machine to send instructions from Dartmouth College in New Hampshire to his Complex Number Calculator in New York

1960-1970 Kleinrock, Baran and Davies had independently conceptualized and developed network systems consisting of datagrams or packets that could be used in a packet switching network between computer systems.

II. History/Network

ARPANet
(http://en.wikipedia.org/wiki/ARPANET)

Advanced Research Projects Agency NetworkUnited States Department of Defense

1962, J.C.R. Licklider was hired by the ARPA and developed the "Intergalactic Network" working groupHis ideas contained almost everything that the Internet is today.

Special type of computers will take care of the packet switching on the behalf of end-users one (big mainframe at that time)

II. History/Network

ARPANet

1969: connection using 50 kbit/s circuits.University of California at Los Angeles,

SRI (in Stanford),

University of California at Santa Barbara,

University of Utah

Development centred around Request For Comment (RFC) still used today.

In the World, other technology X.25 in Europe, DataPac in Canada, FidoNet, ...

and others...

II. History/Network

ARPANet

II. History/Network

Birth of Internet
(http://en.wikipedia.org/wiki/History_of_the_Internet)

Many different networks leads to problem in communication

Internet is the Esperanto of Communication between ComputersReduce the role of network to the bare minimum

Joining any network together whatever their characteristics are

RFCs 791 (IP), 792 (ICMP) and 793 (TCP) defines the InternetPublished in 1982 (First draft in 1974)

1983: TCP/IP becomes the only approved protocol on ARPANET

II. History/Network

Internet for Everyone?

ARPA's business was funding R&DUS Government Funded

Unrelated commercial use was strictly forbiddenConnections to Military sites and Universities

Some companies either helped in research project or provided services (e.g.: HP)

They asked for connections and they had!

Difficulties to define commercial use

1983, the U.S. military portion of the ARPANET was broken off as a separate network: MILNET

1989: first dial-up ISP (world.std.com)Controversy in Universities!

II. History/Network

The Growth of Internet

The Exponential Growth started thanks to the WWW

II. History/Network

The World Wide Web
(http://en.wikipedia.org/wiki/History_of_the_World_Wide_Web)

Until the 90's, finding and accessing documents available on the Internet was a real pain

1991: Tim Berners-Lee from the CERN Labs developed a network-based implementation of the hypertext conceptThe WorldWideWeb (WWW) project aims to allow links to be made to any information anywhere. [...] The WWW project was started to allow high energy physicists to share data, news, and documentation. We are very interested in spreading the web to other areas, and having gateway servers for other data. Collaborators welcome!

II. History/Network

Web Browsers War
(http://en.wikipedia.org/wiki/Browser_wars)

1992: Mosaic (Andreessen & Bina, UIUC Students)First Modern (Graphical) Web Browser available for the mass market (Windows, UNIX) for free

A Revolution!

1994: Anderseen & Clark created NetscapeCompany & Browser name

80% used in 1996

1995: Microsoft released IE v1.0Part of Windows 95+ (quite late!)

The war then started!

II. History/Network

Web Browsers War
(http://en.wikipedia.org/wiki/Browser_wars)

II. History/Network

Netscape vs Microsoft
(http://en.wikipedia.org/wiki/Browser_wars)

Adding features took precedence over bug fixing!Derivation from standardsBest Viewed with XX Campaign!

Unfair: Microsoft released their browser packaged with their OSIE is not the first source of income for Microsoft, it is for Netscape

Even if until IE v4.0, Netscape was by far superior, Microsoft was enlarging its market share automatically after each OS installation!

II. History/Network

Netscape vs Microsoft
(http://en.wikipedia.org/wiki/Browser_wars)

Netscape business model was to sell server software

Microsoft decided to provide for free IIS (Web Server) with server version of Windows

Microsoft created licensing agreements:With computer manufacturers requiring them to provide desktop icons for IE

With AOL to base AOL's primary interface on IE rather than Netscape

Microsoft imposed Apple to provide IE as the default browser on the Mac for five years

II. History/Network

First Browser War Winner: Microsoft

1998: End of NetscapePurchased by AOL afterwards.

Lack of challengers == Lack of inventions2001: IE v6.0 (small improvement over IE v5.5)

2006: IE v7.0 (reason: the success of Firefox)

When Netscape died in 1998, its source code was released with an Open-Source licenceThis product was renamed Mozilla

2002: Mozilla v1.0 rewritten from scratchVery popular in the Open-Source Community

2003: AOL refused to support any longer Mozilla

II. History/Network

Second Browser War

From Mozilla v1.0 many other products have been created2004: Firefox v1.0 is released by the Mozilla foundation (light-weight cross-platform version of Mozilla)

June 2004, major security hole in IESecurity companies and US-CERT recommend Firefox

2005: IE usage share dropped down to 85%It was 95% in 2003.

The war continue...

II. History/Network

Searching on the Web
(http://en.wikipedia.org/wiki/Search_engine)

1993: Lycos

1994: WebCrawlerFirst full text www search engine

1995: Yahoo & AltavistaLeader since 2001

2001: GoogleMinimal interface

Smart unbiased algorithm (PageRank)

Revolution: results become ordered by their relevance!

2004: MSN Search

II. History/Network

Google vs Microsoft

Linux may not be the Microsoft killerBut may be a UNIX killer! ;-)

Google is providing many web-enabled desktop servicesSearch, Mail, Forums, Word, SpreadSheet, ...

Concurrent to MS Office product

The OS does not really matter!Having a good web browser is important!

Google is founding the Mozilla Foundation that is developing Firefox (on both Windows and UNIX)

To be followed...

II. History/Network

Vocabulary

Internet: the giant Wide Area Network (WAN) of networks that uses the TCP/IP protocol for communication

Intranet: a Local Area Network (LAN) that is using TCP/IP but that is not necessarily connected to the Internete.g: GIKI Intranet

Extranet: An Intranet that is extended outside of a company(usually over encryption on top of Internet)

Ethernet: hardware link (TCP/IP is on top)

II. History/Network

Internet Killer Applications

Email was used before the Internet, it actually helps the development of Internet!

Newsgroup: discussion in forums

FTP: File Transfer Protocol

WWW: World Wide Web

Search Engines

P2P: User to User Data Exchange

Web 2.0 (everything runs on the server)Word Processor, Spreadsheet, Mail Reader, ...

Google is the leader (Microsoft Challenger?)

II. History/Network

Network OSI Model
(http://en.wikipedia.org/wiki/OSI_model)

A networking system is divided into layers.

Within each layer, one or more entities implement its functionality.

Each entity interacts directly only with the layer immediately beneath it, and provides facilities for use by the layer above it.

Protocols enable an entity in one host to interact with a corresponding entity at the same layer in a remote host.

II. History/Network

Network OSI Model

X.25 follows the OSI Model

Internet (TCP/IP) does not!!

II. History/Network

OSI & TCP/IP

II. History/Network

Layers at work

Abstraction: Communication from process to process

Implementation: Communication from layer to layer

II. History/Network

Layers at work
Example: UDP

DataUDP DataUDP
HeaderIP DataIP
HeaderFrame
HeaderFrame
TrailerFrame DataApplication
Layer

Transport
Layer

Network
Layer

Link
Layer

II. History/Network

Internet Topology
(2003-11-23)

Asia PacificEurope
Middle East
Central Asia
AfricaNorth AmericaLatin American
Caribbean RFC1918UnknownII. History/Network

Network Topology
(http://en.wikipedia.org/wiki/Network_topology)

II. History/Network

Trends

Asymmetric DSL: download >> upload

WirelessWi-Fi, Blutooth, ...

IP implementation?

Mobility, Topology, ...

MultimediaVoIP -- Voice Over IP (Skype)

Peer to PeerPerformance

Link Layer for Wan (ATM, ...)

II. History/Network

IPv6, the future

IPv6 (Xerox) adopted by IETF in 1994IPv4 address: 32 bits (4.3 billions),

IPv6 address: 128 bits (51028 for each 6.5 billion people)

Many features (e.g: autoconfiguration, security)

Support on Linux started in 1996!2001 fully supported

Windows Vista will support it by default...

Adopted by China and India Facing problems with their population

Taking the leadership?!

II. History/Network

Conclusion

III. Conclusion

History of Computer Sciences

Everything started with counting

Hardware has been designed to help

Theory were needed to understand hardware

Languages were required to ease the commanding of hardware

Operating Systems were designed to manage hardware and to make it appears a single unit

Networking was set up to share the access to costly hardware.

III. Conclusion

Other CS Fields include

Software EngineeringProject Management, ...

Artificial IntelligenceNeural Network, ...

MultimediaImage Processing, ...

Simulation & Modelling

Distributed SystemsWeb Services, ...

Parallel ProgrammingCluster, Grid Computing, ...

III. Conclusion

RepresentationInterpretationNumberRepr.Interp.Number

0 00 001.00x2-10.5000 10 001.00x212.000

0 00 011.01x2-10.6250 10 011.01x212.500

0 00 101.10x2-10.7500 10 101.10x213.000

0 00 111.11x2-10.8750 10 111.11x213.500

0 01 001.00x201.0000 11 001.00x224.000

0 01 011.01x201.2500 11 011.01x225.000

0 01 101.10x201.5000 11 101.10x226.000

0 01 111.11x201.7500 11 111.11x227.000

???Page ??? (???)12/13/2006, 17:38:53Page / RepresentationInterpretationNumberRepr.Interp.Number

0 00 00special0.0000 10 001.00x212.000

0 00 010.01x200.2500 10 011.01x212.500

0 00 100.10x200.5000 10 101.10x213.000

0 00 110.11x200.7500 10 111.11x213.500

0 01 001.00x201.0000 11 00special+

0 01 011.01x201.2500 11 01specialNaN

0 01 101.10x201.5000 11 10specialNaN

0 01 111.11x201.7500 11 11specialNaN

???Page ??? (???)12/13/2006, 17:38:53Page /

Cliquez pour diter le format du texte-titre

Dr. Pierre Vignras

ORTRUEFALSEANDTRUEFALSETRUETRUEFALSEFALSETRUEFALSEFALSEFALSEXORTRUEFALSENOTTRUEFALSETRUETRUEFALSEFALSETRUEFALSEFALSETRUE

???Page ??? (???)12/13/2006, 17:38:53Page /

???Page ??? (???)12/13/2006, 17:38:53Page / 102816

0000

1111

21022

31133

410044

510155

611066

711177

81000108

91001119

10101012A

11101113B

12110014C

13110115D

14111016E

15111117F

16100002010

17100012111

18100102212

???Page ??? (???)12/13/2006, 17:38:53Page / log(n)nn.log(n)nn32n

010112

122484

248166416

382464512256

41664256409665536

5321601024327684294967296

???Page ??? (???)12/13/2006, 17:38:53Page /

???Page ??? (???)12/13/2006, 17:38:53Page / Graph Overviewlog(n)nn.log(n)nn32n

Ligne 2010112

Ligne 3122484

Ligne 4248166416

Ligne 5382464512256

Ligne 641664256409665536

Ligne 75321601024327684294967296

Positionn...210-1-2-3...

Base 22^n...4211/21/41/8...

Base 33^n...9311/31/91/27...

???Page ??? (???)12/13/2006, 17:38:53Page /