6. Information storage
• 1 bit • bit (1 or 0)
• 8 bits • byte (octet) (28)
• 16 bits • word (216)
• 32 bits • double (232)
• 64 bits • long double (264)
Encoding information on a fixed element of length n
with a base b gives bn non-redundant possibilities
7. Information coding
• Binary • How to count
0 or 1 128 64 32 16 8 4 2 1
1 0 1 1 0 1 0 1
• Octal
0-7 • 128+32+16+4+1=
• Hexadecimal 181 (decimal)
265 (octal)
0-9+A-F
B5 (hexadecimal)
• Decimal
0-9 • Signed vs unsigned
0 to 255
-127 to +127
8. Operations on bits
• Booleans: • Example tables
0 = false = no AND 0 1
0 0 0
1 = true = yes
1 0 1
• Operators:
OR 0 1
AND 0 0 1
OR 1 1 1
XOR XOR 0 1
NOT 0 0 1
1 1 0
11. Display
QuickTime™ et un
décompresseur TIFF (non compressé)
sont requis pour visionner cette image.
• Screen pixel or dots
• Fonts
• Color coding: 32 bits
• 1 pixel = 3 bytes of color (RGB)+1 Bitmap
byte alpha channel (transparency) Vectors
• 1600x1200x4bytes=7,5 Mb!
TrueType, OpenType,
PostScript
12. Keyboard/Mouse
• Each key (or combination • The mouse movements
of keys) of the keyboard 1 to 4 bytes (vertical &
sends a code to the horizontal)
computer. • Buttons
• The code is interpreted and Clicked, pressed, rolled
converted to the
corresponding ASCII or buttons
Unicode number.
14. Software layers
Files Data (.doc, .mp3)
Software Word, scripts, mail, web browser…
User Interface Quartz CLI, X-Windows Windows
Operating MacOSX Linux Windows
System
ROM Firmware BIOS
Hardware CPU, RAM, HD, DVD
15. File systems
• Method the OS uses to store information
Storage unit, directories, subdirectories (Windows,
VMS)
Single arborescence (Linux, MacOSX, all Unix)
• What exactly is a file?
a piece of information (text, graphic, data, music
program, script)
it is identified by a name and an logical address (or
path)
other informations: date, size, type, creator,
ownership, physical address…
16. File system organisation
Disk 1 Disk 2 Disk 2
C: D: /
DOCS PROGS CONFIG DATA Directories /usr /home
Disk 1
WORD EXCEL EXPT1 EXPT2 Subdirectories local phil john
bin lib
emacs X11
Windows Unix
17. Path
• The path is the logical address used by
the system or the user to locate a file.
• Example:
/bd_du_Palais/35/etage/4/appart/12/Dupont_ Jean.txt
suffix
filename
path
18. File types
• Executable • Special cases in Unix
.exe STDIN
.app STDOUT
Unix requires « x » STDERR
• Data
Text (.txt)
Music (.mp3)
Image (.jpg, .gif)
Movie (.mpg, .mov)
Binary (.bin)
19. Encryption / compression
• Compression
Reducing the size of files
E.g., .mp3, .gz, .jpg, .zip
• Encryption
Protecting your privacy
E.g., .pgp
• Packing
Grouping the files
E.g., .tar
20. Networks
• Direct
USB 11Mb-480Mb
Ethernet 10Mb-1Gb
• Wired
Modem 56Kb
ADSL 600Kb-8Mb
LAN 10Mb-10Gb
• Wireless
Bluetooth 1Mb-20Mb
WIFI (AirPort) 11Mb-54Mb
21. Network (ethernet or wireless)
• Computer talk to each • Handshaking
other via network • Transmission
protocols • Ackowledgement
ip, tcp, http, ftp, …
• TCP/IP • DNS
Domain Name Server
transmission control
protocol/internet protocol • URL
Universal Resource
Locator
• IP addess
192.42.197.51
22. DNS reminder
2 Root DNS 3
*.org
5 4
Local DNS Primary DNS
dns.anywhere.net www.expasy.org
1 6
www.expasy.org ??
Client query Target server
client.anywhere.net 129.194.8.64
31. Source code -> Object code
• Compiler+linker • Compiler+linker
Fortran, C, Pascal, C++… Fast to execute, but slow
to debug
• Interpreter • Interpreter
Basic, Perl… Slow to execute, but fast
to debug (no need to
recompile)
• Intermediate • Intermediate
Java Slow…
33. Source code (2)
• Statement, blocks • Variable
One or more A region in memory
instructions for the that can be modified
processor
Exists in different
• Affectation types
Change to a variable Scalar, char, numeric,
• Operator boolean
affect one or more List, array
variable Hash
+ * - / AND OR NOT… Combination->data
structure
34. Source code (3)
• Loops • Pointers
Allow the computer to Reference to region in
repeat blocks memory (address)
• Tests • Objects
Decide what to do
Combination of data
• Subroutines and code
Programs frequently
called (functions)
• Comments
The most important
lines of the source
code…
35. Example: a text to treat
« Noon rings out. A wasp, making an ominous sound, a sound akin to a klaxon or a
tocsin, flits about. Augustus, who has had a bad night, sits up blinking and purblind. Oh
what was that word (is his thought) that ran through my brain all night, that idiotic word
that, hard as I'd try to pun it down, was always just an inch or two out of my grasp - fowl
or foul or Vow or Voyal? - a word in a quizz which, by association, brought into play an
incongruous mass and magma of nouns, idioms, slogans and sayings, a confusing,
amorphous outpouring which I sought in vain to control or turn off but which wound
around my mind a whirlwind of a cord, a whiplash of a cord, a cord that would split again
and again, would knit again and again, of words without communication or any possibility
of combination, words without pronunciation, signification or transcription but out of
which, notwithstanding, was brought forth a flux, a continuous, compact and lucid flow: an
intuition, a vacillating frisson of illumination as if caught in a flash of lightning or in a mist
abruptly rising to unshroud an obvious sign - but a sign, alas, that would last an instant
only to vanish for good. »
Gilbert Adair
36. Result…
a=97 n=91
b=15 o=104 Do you see any problem??
c=26 p=15
d=35 q=1
f=23 r=43
g=32 s=59
h=44 t=77
Try with this:
i=90 u=52
j=1 v=4
« The quick brown fox, jumps
k=5 w=31 over the lazy dog. »
l=33 x=2
m=17 y=13
z=2
38. Source code example
#!/usr/bin/perl -w # essential line of all perl scripts
$filename = "avoid.txt"; # affect « avoid.txt » to the variable $filename
# open the file, or exit
open(FILE, $filename) || die "Cannot open file ‘$filename’nn";
@text = <FILE>; # add each line of the file to an array
close FILE;
foreach $line (@text) { # read one line from the array into $line and repeat for each line
@table = split(//,$line); # read each character of the line in an array
while ($char=pop(@table)) { # read one character of the array 'table' and repeat for all
$char =~ s/[^a-z]//; # keep only the alphabetical character a to z
if ($char) { # check if the character exists and execute the block
$count{$char}++; # if yes, increment by one the hash 'count'
}
}
}
# print each character and its number of occurence one per line
foreach $c (keys %count) {
print "$c=$count{$c}n";
}
exit; # quit the program