history of computing
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
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 /