nú bi á inúmeros binários e linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte...

49
bi á i bi á i meros binários e meros binários e Linguagens de Linguagens de Programa Programação ção André Proto André Proto Adriano Mauro Adriano Mauro Cansian Cansian UNESP UNESP - São José do Rio Preto São José do Rio Preto ______________________________ ______________________________ http://adriano.acmesecurity.org/lc http://adriano.acmesecurity.org/lc (Li C t i l) (Li C t i l) (Linguagem Computacional) (Linguagem Computacional)

Upload: nguyenthuan

Post on 25-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Nú bi á iNú bi á iNúmeros binários eNúmeros binários eLinguagens de Linguagens de g gg gProgramaProgramaçãoção

André ProtoAndré ProtoAdriano Mauro Adriano Mauro CansianCansian

UNESP UNESP -- São José do Rio PretoSão José do Rio Preto____________________________________________________________http://adriano.acmesecurity.org/lchttp://adriano.acmesecurity.org/lc

(Li C t i l)(Li C t i l)(Linguagem Computacional)(Linguagem Computacional)

Page 2: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Neste tNeste tópico veremos:ópico veremos:

•• A representaA representação da informação.ção da informação.–– Lógica binária e informação digital.Lógica binária e informação digital.–– Codificação de informações.Codificação de informações.Codificação de informações.Codificação de informações.

•• As linguagens de programaAs linguagens de programaçãoção•• PropPropósitosósitos•• Tipos de linguagens e suas característicasTipos de linguagens e suas característicasTipos de linguagens e suas características.Tipos de linguagens e suas características.

Adriano Mauro Cansian 2

Page 3: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação da informação (1)ção da informação (1)

•• A forma como a A forma como a arquitetura de um computadorarquitetura de um computador foi foi elaborada faz com que eleelaborada faz com que ele opere apenas através deopere apenas através deelaborada faz com que ele elaborada faz com que ele opere apenas através de opere apenas através de “chaves” positivas e negativas, assumindo valores 0s “chaves” positivas e negativas, assumindo valores 0s (zero) e 1s (um)(zero) e 1s (um). .

•• Isso significa que para Isso significa que para cada comando ou informacada comando ou informação que ção que representamos no computadorrepresentamos no computador, ele realiza milhares de , ele realiza milhares de operações apenas usando conjuntos de “chaves” 0s e 1soperações apenas usando conjuntos de “chaves” 0s e 1soperações apenas usando conjuntos de chaves 0s e 1s. operações apenas usando conjuntos de chaves 0s e 1s.

•• Veremos como isso Veremos como isso é possível…é possível…

Adriano Mauro Cansian 3

Page 4: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação da informação (2)ção da informação (2)

•• A A menor unidade de informaçãomenor unidade de informação que um que um computador pode armazenar é o binômio 0 (zero)computador pode armazenar é o binômio 0 (zero)computador pode armazenar é o binômio 0 (zero) computador pode armazenar é o binômio 0 (zero) ou 1 (um). ou 1 (um).

•• A este tipo de informação chamamosA este tipo de informação chamamos CódigoCódigo•• A este tipo de informação chamamos A este tipo de informação chamamos Código Código BinárioBinário ou ou BitBit (do inglês (do inglês Binary DigitBinary Digit), que é a ), que é a ““Linguagem de MáquinaLinguagem de Máquina”” usada pelosusada pelosLinguagem de MáquinaLinguagem de Máquina usada pelos usada pelos computadores. computadores.

•• Para cada informação o computador utilizaPara cada informação o computador utilizaPara cada informação, o computador utiliza Para cada informação, o computador utiliza diversos 0s e 1s seguidos: diversos 0s e 1s seguidos: 00110101010010110011010101001011..

Adriano Mauro Cansian 4

Page 5: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Bits e Bytes (1)Bits e Bytes (1)

•• Unidade mínima Unidade mínima BitBit ou dígito binário: tem ou dígito binário: tem dois dois d í id í i 11 ““ ” 0 “” 0 “ ffff””estados possíveisestados possíveis: 1 = : 1 = ““onon” ou 0 = “” ou 0 = “offoff””

•• Entretanto, na maioria das vezes, Entretanto, na maioria das vezes, a informação é a informação é manipulada em seqmanipulada em seqüüências de ências de 8 bits8 bits. .

•• O nome dado a um O nome dado a um conjunto de 8 bitsconjunto de 8 bits é “é “ByteByte” ou ” ou jj yyocteto.octeto.

1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte) = 1024 MB1 TB (Terabyte) = 1024 GB

Adriano Mauro Cansian 5

Page 6: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Bits e Bytes (2)Bits e Bytes (2)

MEDIDA: REPRESENTA O MESMO QUE: Bit 0 ou 1 - menor unidade de dado

Byte conjunto de 8 bits ou 1 caractere Byte conjunto de 8 bits ou 1 caractere Kilobyte (Kb) 210 ou 1024 bytes

Megabyte (Mb) 210 ou 1024 Kilobyte Gigabyte (Gb) 210 ou 1024 Megabyte Gigabyte (Gb) 210 ou 1024 Megabyte Terabyte (Tb) 210 ou 1024 Gigabyte

Adriano Mauro Cansian 6

Page 7: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Sistemas de numeração (1)Sistemas de numeração (1)

•• Um sistema de numeraUm sistema de numeração ção permite permite representar representar uma informauma informaçãoção usando umusando um conjunto deconjunto deuma informauma informaçãoção usando um usando um conjunto de conjunto de símbolos.símbolos.

•• Os sOs símbolos fazem referência a um valorímbolos fazem referência a um valor•• Os sOs símbolos fazem referência a um valor ímbolos fazem referência a um valor numérico padronizado, chamada de “numérico padronizado, chamada de “basebase”.”.

A quantidade de diferentes símbolos existentes numA quantidade de diferentes símbolos existentes num–– A quantidade de diferentes símbolos existentes num A quantidade de diferentes símbolos existentes num dado sistema de numeração representa a sua base. dado sistema de numeração representa a sua base.

•• Por exemplo: o sistema de numeração decimal éPor exemplo: o sistema de numeração decimal éPor exemplo: o sistema de numeração decimal é Por exemplo: o sistema de numeração decimal é composto por dez símbolos diferentescomposto por dez símbolos diferentes: : 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 = 10 s0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 = 10 símbolos = ímbolos = base 10base 10

Adriano Mauro Cansian 7

Page 8: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Sistemas de numeração (2)Sistemas de numeração (2)

•• Por exemplo: 5.031.902 na Por exemplo: 5.031.902 na base 10:base 10:55x10x106 6 ++ 00x10x105 5 ++ 33x10x104 4 ++ 11x10x103 3 ++ 99x10x102 2 ++ 00x10x101 1 ++ 22x10x100 0 = 5 031 902= 5 031 90255x10x10 + + 00x10x10 + + 33x10x10 + + 11x10x10 + + 99x10x10 + + 00x10x10 + + 22x10x10 5.031.902 5.031.902

•• Alguns tipos de representaAlguns tipos de representações possíveis:ções possíveis:–– Decimal: base 10Decimal: base 10Decimal: base 10Decimal: base 10–– Binário: base 2 = 2 sBinário: base 2 = 2 símbolos = ímbolos = 00 e e 11–– Hexadecimal: base 16 Hexadecimal: base 16 –– Octal: base 8Octal: base 8

•• É possível É possível converter um nconverter um número úmero representado representado pp ppnum sistema de numeração para outro sistema num sistema de numeração para outro sistema de numeração.de numeração.

Adriano Mauro Cansian 8

Page 9: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Sistema binSistema binárioário

•• Um exemplo de representaUm exemplo de representação de um ção de um número na base 2:número na base 2:–– Os números devem ser representadosOs números devem ser representadosOs números devem ser representados Os números devem ser representados

com 2 símbolos: 0 ou 1com 2 símbolos: 0 ou 1•• Binário:Binário: 0 1 0 0 1 0 0 00 1 0 0 1 0 0 0 decimal: 72decimal: 72•• Binário: Binário: 0 1 0 0 1 0 0 00 1 0 0 1 0 0 0 = decimal: 72= decimal: 72

0 20 277 1 21 266 0 20 255 0 20 244 1 21 233 0 20 222 0 20 211 0 20 200 72720x20x277+1x2+1x266+0x2+0x255+0x2+0x244+1x2+1x233+0x2+0x222+0x2+0x211+0x2+0x20 0 = 72= 72

Adriano Mauro Cansian 9

Page 10: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

C t dC t d í b lí b lConvertendo sConvertendo símbolosímbolosÉ possívelÉ possível converter um nconverter um númeroúmero representado numrepresentado numÉ possível É possível converter um nconverter um número úmero representado num representado num sistema de numeração para outro sistema de sistema de numeração para outro sistema de numeração.numeração.

Sistema BinárioSistema Binário11101111

çç

Sistema DecimalSistema Decimal239

1×20 = 11×21 = 21×22 49×100 = 9

3×101 = 302×102 = 200

1×22 = 41×23 = 80×24 = 0

5239

1×25 = 321×26 = 641×27 = 128

Adriano Mauro Cansian 10239

Page 11: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

C t dC t d í b lí b lConvertendo sConvertendo símbolosímbolos

Adriano Mauro Cansian 11

Page 12: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Codificando a informaCodificando a informação (1)ção (1)

•• Como o computador Como o computador processa toda a processa toda a informação usando representainformação usando representações ções de 0s e 1sde 0s e 1sde 0s e 1sde 0s e 1s..–– InformaInformação ção em formato digital, em formato digital,

•• ÉÉ necessário haver conversão dos necessário haver conversão dos didi í b lí b l i ti tdiversos sdiversos símbolos,ímbolos, para o sistema para o sistema binário.binário.

Adriano Mauro Cansian 12

Page 13: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Codificando a informaCodificando a informação (2)ção (2)

•• Os computadores essencialmente são máquinas que Os computadores essencialmente são máquinas que permitem manipulação de símbolos:permitem manipulação de símbolos:permitem manipulação de símbolos:permitem manipulação de símbolos:

•• números, texto, imagem, som, ... Ou seja: DADOS.números, texto, imagem, som, ... Ou seja: DADOS.

•• No entantoNo entanto todos estes símbolos stodos estes símbolos sóó podem ser obtidos apodem ser obtidos a•• No entanto, No entanto, todos estes símbolos stodos estes símbolos só ó podem ser obtidos a podem ser obtidos a partir de símbolos binários 0/1 ou partir de símbolos binários 0/1 ou bitsbits–– Fáceis de armazenar, representar e manipular electronicamente,Fáceis de armazenar, representar e manipular electronicamente,Fáceis de armazenar, representar e manipular electronicamente, Fáceis de armazenar, representar e manipular electronicamente,

com chaves ligadas e desligadas.com chaves ligadas e desligadas.

•• Assim toda a informação pode ser considerada como um Assim toda a informação pode ser considerada como um conjunto ordenado (sequência) de bits cujo valor simbólico conjunto ordenado (sequência) de bits cujo valor simbólico depende do depende do contextocontexto..

Adriano Mauro Cansian 13

Page 14: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Codificando a informaCodificando a informação (3)ção (3)

•• A informação A informação éé um conjunto ordenado de bits cujo valor um conjunto ordenado de bits cujo valor simbólico depende do contextosimbólico depende do contextosimbólico depende do contexto.simbólico depende do contexto.

•• O contexto pode ser, por exemplo, o tipo do arquivo que O contexto pode ser, por exemplo, o tipo do arquivo que contcontém os dados.ém os dados.contcontém os dados.ém os dados.

•• Este tipo de arquivo vai indicar:Este tipo de arquivo vai indicar:Qual o tipo de informação representadaQual o tipo de informação representada–– Qual o tipo de informação representada Qual o tipo de informação representada

–– Qual o código utilizado para codificar esta informaQual o código utilizado para codificar esta informação.ção.

Adriano Mauro Cansian 14

Page 15: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação de texto (1)ção de texto (1)

•• Exemplo: representaExemplo: representação de texto.ção de texto.•• Cada símbolo pode ser representado por Cada símbolo pode ser representado por 1 1 byte,byte, de de

acordo com o código acordo com o código ASCIIASCII..A i St d d C d f I f ti I t hA i St d d C d f I f ti I t h ))American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange), ),

•• SSímbolos mais complexos ímbolos mais complexos podem ser representados por podem ser representados por outros códigosoutros códigos mais sofisticadosmais sofisticados comcom dois ou mais bytesdois ou mais bytesoutros códigos outros códigos mais sofisticadosmais sofisticados, com , com dois ou mais bytesdois ou mais bytes, , para permitir de outros alfabetos não latinos.para permitir de outros alfabetos não latinos.

ãã šš αα ИИ אא فف ιιãã šš αα ИИ אא فف ιι

Adriano Mauro Cansian 15

Page 16: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação de texto (2)ção de texto (2)

CadaCada símbolosímbolo éé normalmentenormalmente representadorepresentado porpor 11 bytebyte dededd ódiódi ASCIIASCII ((A iA i St d dSt d d C dC d ffacordoacordo comcom oo códigocódigo ASCIIASCII ((AmericanAmerican StandardStandard CodeCode forfor

InformationInformation InterchangeInterchange))..memória principal

01000010011011110110110100100000011001000110100101100001

B o m d i a

01000010

01101111

...

B

o

p p

01101101

00100000

01100100

m

d

01100001

01101001

...

a

i

Adriano Mauro Cansian 16

Page 17: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

R d T (3)R d T (3)Representação de Texto (3)Representação de Texto (3)

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 11110000 ! " # $ % & ' ( ) * + , - . /0001 0 1 2 3 4 5 6 7 8 9 : ; < = > ?0010 @ A B C D E F G H I J K L M N O0011 P Q R S T U V W X Y Z [ \ ] ^0011 P Q R S T U V W X Y Z [ \ ] _0100 ` a b c d e f g h i j k l m n o0101 p q r s t u v w x y z { | } ~ �0110 € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž‚ ƒ „ † ‡0111 � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ

Adriano Mauro Cansian 17

Page 18: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

VVáriosários padrpadrões de ões de codificação de Informaçõescodificação de Informações

•• ANSIANSI –– American National Standard InstituteAmerican National Standard Institute•• ASCIIASCII –– American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange

–– Letras, dígitos numéricosLetras, dígitos numéricos–– Caracteres especiais: CR, LF, TAB, etc.Caracteres especiais: CR, LF, TAB, etc.

•• Outros: Outros: –– EBCDICEBCDIC–– UnicodeUnicodeUnicodeUnicode–– ISO 8859ISO 8859--11

http://www.tharo.com/documents/manuals/apollo/a123http://www.tharo.com/documents/manuals/apollo/a123--1ae.htm1ae.htm

Adriano Mauro Cansian 18

p pp p

Page 19: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Adriano Mauro Cansian 19http://www.tharo.com/documents/manuals/apollo/a123-1ae.htmhttp://www.tharo.com/documents/manuals/apollo/a123-1ae.htm

Page 20: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação de imagens (1)ção de imagens (1)

•• Representação por mapa de bits (Representação por mapa de bits (bitmapbitmap))–– Uma imagem é uma sequência muito longa de bits Uma imagem é uma sequência muito longa de bits

representando pontos (representando pontos (pixelpixel = = picture elementpicture element):):

–– Em Preto e branco:Em Preto e branco:•• PixelPixel representado por 1 bit: 1→preto / 0→brancorepresentado por 1 bit: 1→preto / 0→branco

–– Em cores:Em cores:•• PixelPixel representado por 3 bytes: representado por 3 bytes: p p yp p y•• Vermelho / verde / azul (Vermelho / verde / azul (RRed ed GGreen reen BBluelue))

Adriano Mauro Cansian 20

Page 21: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

RepresentaRepresentação de imagens (2)ção de imagens (2)

•• Os mapas de bits ocupam muito espaço.Os mapas de bits ocupam muito espaço.FF üü ã dã d é i d ãé i d ã•• FreqFreqüüentemente sentemente são usadas ão usadas técnicas de compressãotécnicas de compressão–– PadPadõesões GIF e JPEG.GIF e JPEG.

•• Uma desvantagem adicional das imagens tipoUma desvantagem adicional das imagens tipo bitmapbitmap é aé a dificuldadedificuldadeUma desvantagem adicional das imagens tipo Uma desvantagem adicional das imagens tipo bitmapbitmap é a é a dificuldade dificuldade de aumentar ou diminuir as imagensde aumentar ou diminuir as imagens (re(re--escalonar).escalonar).

•• Imagens vetoriais:Imagens vetoriais: Para resolver este problema, a imagem é Para resolver este problema, a imagem é representada como um conjunto de linhas e curvas deixando osrepresentada como um conjunto de linhas e curvas deixando osrepresentada como um conjunto de linhas e curvas, deixando os representada como um conjunto de linhas e curvas, deixando os detalhes do seu desenho para o dispositivo que produz a imagem detalhes do seu desenho para o dispositivo que produz a imagem (monitor, impressora), permitindo obter mais facilmente ampliações e (monitor, impressora), permitindo obter mais facilmente ampliações e reduçõesreduçõesreduções.reduções.

•• http://www.scantips.com/basics11.htmlhttp://www.scantips.com/basics11.html

Adriano Mauro Cansian 21

Page 22: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Armazenamento de Informação (1)Armazenamento de Informação (1)

•• A memória (RAM) é organizada numa sequência A memória (RAM) é organizada numa sequência d él ld él lde células.de células.

•• Cada conjunto de cCada conjunto de células de memória é chamada élulas de memória é chamada dede ““palavrapalavra”.”.–– Cada palavraCada palavra possui um tamanho de 1 ou mais bytes.possui um tamanho de 1 ou mais bytes.

•• As palavras de memAs palavras de memória podem ser ória podem ser acessadas acessadas individualmente, especificando o seu endereço.individualmente, especificando o seu endereço., p ç, p ç

Adriano Mauro Cansian 22

Page 23: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Armazenamento de Informação (2)Armazenamento de Informação (2)

•• O número de células da memória principal é O número de células da memória principal é muito grande (por exemplo 500 MB).muito grande (por exemplo 500 MB).

•• ExpressaExpressa--se a memse a memóriaória em potências de 2:em potências de 2:ExpressaExpressa se a memse a memória ória em potências de 2:em potências de 2:

1010221010 bytesbytes = 1024 bytes = 1024 bytes = 1 Kilobyte= 1 Kilobyte = 1 KB= 1 KB222020 bytesbytes = 1024 K bytes= 1024 K bytes = 1 Megabyte= 1 Megabyte = 1 MB= 1 MB223030 bytesbytes = 1024 M bytes= 1024 M bytes = 1 Gigabyte= 1 Gigabyte = 1 GB= 1 GByy yy g yg y224040 bytesbytes = 1024 G bytes= 1024 G bytes = 1 Terabyte= 1 Terabyte = 1 TB= 1 TB

Adriano Mauro Cansian 23

Page 24: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Armazenamento de Informação (3)Armazenamento de Informação (3)Armazenamento de Informação (3)Armazenamento de Informação (3)•• As células de memória têm um endereço As células de memória têm um endereço

é ifi d ú d bié ifi d ú d bi 0:

endereço01101101

células

que é especificado por um número de bits que é especificado por um número de bits igual ao expoente da potência de 2 igual ao expoente da potência de 2 utilizada.utilizada.

0:

1:

2:

01101101

10101110

00001111

•• Por exemplo, para endereçar 1024 células Por exemplo, para endereçar 1024 células são necessários 10 bits: 1024 = 2são necessários 10 bits: 1024 = 21010 : : d d i ãd d i ã 00 0000000000000000 ttéé

3:

4:

01011100

10110011

......desde a posição desde a posição 001010 = 0000= 0000000000002 2 ataté aé aposição posição 102310231010 == 111111111111111122..

• A memória pode ser considerada uma longa seqüência de bits, permitindo representações com um tamanho

bi á i d biarbitrário de bits.

• Por exemplo, uma sequência de 32 bits pode ser

Adriano Mauro Cansian 24representada por 4 células consecutivas.

Page 25: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Armazenamento de Informação (4)Armazenamento de Informação (4)

0:

endereço

01101101

células

0:

1:

2:

3:

01101101

10101110

00001111

010111000 0 0 0 1 1 1 1

3:

4:

??:

01011100

10110011

00110011

...... bit mais significativo

bit i ifi ti

EmEm cadacada célulacélula osos bitsbits sãosão ordenadosordenados..

??: 00110011 bit menos significativo

AA memóriamemória principalprincipal podepode serser consideradaconsiderada umauma longalongasequênciasequência dede bitsbits permitindopermitindo representaçõesrepresentações comcom umumsequênciasequência dede bits,bits, permitindopermitindo representaçõesrepresentações comcom umumtamanhotamanho arbitrárioarbitrário dede bitsbits..• Por exemplo uma sequência de 32 bits pode ser representada por 4 células

Adriano Mauro Cansian 25

Por exemplo, uma sequência de 32 bits pode ser representada por 4 células consecutivas.

Page 26: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Linguagens de ProgramaLinguagens de Programaçãoção

Page 27: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Linguagens de Programação (1)Linguagens de Programação (1)

•• SSão ão usadas para descrever usadas para descrever algoritmos.algoritmos.–– Ou seja: Ou seja: seqüências de passosseqüências de passos que levam à que levam à

solução de um problema.solução de um problema.ç pç p•• Algoritmos serAlgoritmos serão discutidos de forma mais ão discutidos de forma mais

aprofundada nesta disciplina, mais adiante.aprofundada nesta disciplina, mais adiante.

•• As linguagens permitem que os usuários As linguagens permitem que os usuários especifiquem como os passos devem serespecifiquem como os passos devem serespecifiquem como os passos devem ser especifiquem como os passos devem ser seqüenciados para resolver um problemaseqüenciados para resolver um problema. .

Adriano Mauro Cansian 27

Page 28: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Linguagens de Programação (2)Linguagens de Programação (2)

•• Uma linguagem de programação: pode ser Uma linguagem de programação: pode ser considerada como sendo uma considerada como sendo uma notação notação especialespecial, a qual pode ser usada para , a qual pode ser usada para pp , q p p, q p pespecificar algoritmos com precisãoespecificar algoritmos com precisão..

•• As ling agens dAs ling agens dão origem aos programas deão origem aos programas de•• As linguagens dAs linguagens dão origem aos programas de ão origem aos programas de computador.computador.

Adriano Mauro Cansian 28

Page 29: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Linguagens de Programação (3)Linguagens de Programação (3)

•• Estes programas podem ser escritos em linguagens Estes programas podem ser escritos em linguagens com vários graus decom vários graus de abstraçãoabstração::com vários graus de com vários graus de abstraçãoabstração::–– Desde a linguagem Desde a linguagem ASSEMBLYASSEMBLY (linguagem máquina (linguagem máquina

com algumas mnemcom algumas mnemônicasônicas) diretamente relacionada) diretamente relacionadacom algumas mnemcom algumas mnemônicasônicas) diretamente relacionada ) diretamente relacionada com o funcionamento de um determinado processador.com o funcionamento de um determinado processador.

–– Até às linguagens de alto nível (Pascal, C, Java, ...), Até às linguagens de alto nível (Pascal, C, Java, ...), independentes do processador.independentes do processador.

•• Para entender o que sPara entender o que são as linguagens, é preciso ão as linguagens, é preciso d lh dd lh dentender um pouco melhor como o computador entender um pouco melhor como o computador

processa informações…processa informações…

Adriano Mauro Cansian 29

Page 30: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Arquitetura Básica do Computador (1)Arquitetura Básica do Computador (1)Arquitetura Básica do Computador (1)Arquitetura Básica do Computador (1)

•• CPUCPU ((CentralCentral ProcessingProcessing UnitUnit))–– LêLê instruçõesinstruções

ExecutaExecuta instruçõesinstruções–– ExecutaExecuta instruçõesinstruções

•• MemóriaMemóriaG ardaG arda DadosDados–– GuardaGuarda DadosDados

–– GuardaGuarda InstruçõesInstruções

•• DispositivosDispositivos dede Entrada/SaídaEntrada/Saída•• DispositivosDispositivos dede Entrada/SaídaEntrada/Saída–– Teclado,Teclado, mouse,mouse, placaplaca gráfica,gráfica, placaplaca dede som,som, discosdiscos rígido,rígido,

impressoras,impressoras, placaplaca dede rede,rede, ......–– PermitePermite aa comunicaçãocomunicação comcom oo “exterior”“exterior”..

Adriano Mauro Cansian 30

Page 31: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Primeiras LinguagensPrimeiras Linguagens

•• Programadores usavam linguagem de máquina.Programadores usavam linguagem de máquina.–– Seqüências de dígitos binários (0s e 1s)Seqüências de dígitos binários (0s e 1s)Seqüências de dígitos binários (0s e 1s). Seqüências de dígitos binários (0s e 1s). –– Por exemplo, a instrução “some 1 + 1” deveria ser representada Por exemplo, a instrução “some 1 + 1” deveria ser representada

como: 10100100como: 10100100•• Muitas desvantagens:Muitas desvantagens:

–– Grande probabilidade de erroGrande probabilidade de erro em todos os estágios do processo em todos os estágios do processo de programação.de programação.p g çp g ç

•• O cálculo de endereços de memória devem ser feitos manualmente, O cálculo de endereços de memória devem ser feitos manualmente, com um árduo trabalho e uma grande probabilidade de erros.com um árduo trabalho e uma grande probabilidade de erros.

–– Mesmo sendo com algoritmos simples,Mesmo sendo com algoritmos simples, resulta em longosresulta em longosMesmo sendo com algoritmos simples, Mesmo sendo com algoritmos simples, resulta em longos resulta em longos programasprogramas, o que , o que dificulta o processo de validação e detecção dificulta o processo de validação e detecção de errosde erros..

Adriano Mauro Cansian 31

Page 32: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Tipos de LinguagemTipos de Linguagem 2001:2002:

LDA5001

•• As linguagens de baixo nível As linguagens de baixo nível R t it li d á iR t it li d á i

2005:

2003:2004:

2006:

LDB5002ADDSTO–– Restritas a linguagem de máquina.Restritas a linguagem de máquina.

–– Forte relação entre as operações implementadas pela Forte relação entre as operações implementadas pela linguagem e as operações implementadas pelolinguagem e as operações implementadas pelo

2007: 5003

linguagem e as operações implementadas pelo linguagem e as operações implementadas pelo hardware.hardware.

•• As linguagens de alto nívelAs linguagens de alto nível Z X+Yg gg g–– AproximamAproximam--se das se das linguagens utilizadas por linguagens utilizadas por

humanoshumanos para expressar problemas e algoritmospara expressar problemas e algoritmos–– Cada declaração numa linguagem de alto nível Cada declaração numa linguagem de alto nível

equivale a várias declarações numa linguagem de baixo equivale a várias declarações numa linguagem de baixo nívelnível

Adriano Mauro Cansian 32

nível. nível.

Page 33: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

ProgramaPrograma--fontefonte

•• ProgramaPrograma--fonte ou fonte ou ““ccódigoódigo--fonte”:fonte”:–– ProgramaPrograma--fonte fonte é o programa escrito na é o programa escrito na

linguagem de altolinguagem de alto--nível.nível.g gg g–– É “legível”.É “legível”.

Escrito no formato de um arquivo um programaEscrito no formato de um arquivo um programa–– Escrito no formato de um arquivo um programa Escrito no formato de um arquivo um programa de edição de textos.de edição de textos.P l P l C F tP l P l C F t–– Por exemplo: Pascal, C, FortranPor exemplo: Pascal, C, Fortran

Adriano Mauro Cansian 33

Page 34: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Alto Nível X Baixo Nível (1)Alto Nível X Baixo Nível (1)

•• Alto nívelAlto nível–– Problemas podem ser solucionados muito mais Problemas podem ser solucionados muito mais

rapidamente e com muito mais facilidade rapidamente e com muito mais facilidade –– A solução do problema não necessita ser A solução do problema não necessita ser

obscurecida pelo nível de detalhes necessários obscurecida pelo nível de detalhes necessários li d b i í lli d b i í lem um programa em linguagem de baixo nível.em um programa em linguagem de baixo nível.

–– O programa em linguagem de alto nível é O programa em linguagem de alto nível é l t fá il d i t d dl t fá il d i t d dnormalmente fácil de seguir e entender cada normalmente fácil de seguir e entender cada

passo da execução.passo da execução.

Adriano Mauro Cansian 34

Page 35: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Alto Nível X Baixo Nível (2)Alto Nível X Baixo Nível (2)

•• Baixo nívelBaixo nível–– Indicada para funções que precisam implementar Indicada para funções que precisam implementar

instruções de máquina específicas que não são instruções de máquina específicas que não são suportadas por linguagens de alto nívelsuportadas por linguagens de alto nívelsuportadas por linguagens de alto nível.suportadas por linguagens de alto nível.

–– A grande eficiência e o reduzido tamanho dos A grande eficiência e o reduzido tamanho dos programasprogramasprogramas.programas.

–– Impossibilidade de uso de linguagens de alto nível Impossibilidade de uso de linguagens de alto nível (quando o hardware(quando o hardware éé muito simples, por exemplo, ummuito simples, por exemplo, um(quando o hardware (quando o hardware é é muito simples, por exemplo, um muito simples, por exemplo, um sistema de um vesistema de um veículo, um brinquedo, ou um ículo, um brinquedo, ou um videogamevideogame))

Adriano Mauro Cansian 35

Page 36: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

AbstraAbstraçãoçãoU t í ti i t t d li d ltU t í ti i t t d li d lt í l éí l é•• Uma característica importante das linguagens de alto nUma característica importante das linguagens de alto nível é aível é aabstraçãoabstração::–– “abstrair” um conjunto de instruções numa “abstrair” um conjunto de instruções numa únicaúnica instrução. instrução.

•• Esta é naturalmente uma propriedade já conhecida da “matemática”, Esta é naturalmente uma propriedade já conhecida da “matemática”, através da utilização de funções.através da utilização de funções.

•• Por exemplo, é conhecido que a soma da série “truncada”: Por exemplo, é conhecido que a soma da série “truncada”: p qp qx x -- xx33/3! + x/3! + x55/5! /5! -- xx77/7! + x/7! + x99/9! + ... /9! + ...

converge para o valor do seno de x. Assim, para denotar o valor do converge para o valor do seno de x. Assim, para denotar o valor do d b d dd b d d dddobro do seno de xdobro do seno de x, em vez de escrevermos, em vez de escrevermos

2* (x 2* (x -- xx33/3! + x/3! + x55/5! /5! -- xx77/7! + x/7! + x99/9! + ... )/9! + ... )escrevemos naturalmenteescrevemos naturalmente “duas vezes o seno de x” como:“duas vezes o seno de x” como:escrevemos naturalmente escrevemos naturalmente duas vezes o seno de x como:duas vezes o seno de x como:

2*sen(x)2*sen(x)abstraindo todo o cálculo do valor do seno de x na notação “sen(x)”.abstraindo todo o cálculo do valor do seno de x na notação “sen(x)”.

Adriano Mauro Cansian 36

Page 37: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Programas e FunçõesProgramas e Funções

•• De uma forma geral, podemos considerar que uma função tem um De uma forma geral, podemos considerar que uma função tem um valor determinado pelo valor dos seus argumentos.valor determinado pelo valor dos seus argumentos.

Função F: x Função F: x f(x) f(x) •• De uma forma “operacional”, pode considerarDe uma forma “operacional”, pode considerar--se uma “função” como se uma “função” como

um mecanismo que calcula o valor da função a partir do valor dosum mecanismo que calcula o valor da função a partir do valor dosum mecanismo que calcula o valor da função a partir do valor dos um mecanismo que calcula o valor da função a partir do valor dos seu(s) parâmetro(s) “de entrada”. seu(s) parâmetro(s) “de entrada”.

•• Esta noção “matemática” de função pode ser adaptada para o domínio Esta noção “matemática” de função pode ser adaptada para o domínio d ãd ãda computaçãoda computação

Programa P: input Programa P: input outputoutput•• Assim, a execução de um programa pode ser considerada como o Assim, a execução de um programa pode ser considerada como o , ç p g p, ç p g p

mecanismo que determina um “mecanismo que determina um “outputoutput” qualquer a partir de um dado ” qualquer a partir de um dado ““inputinput”.”.

Adriano Mauro Cansian 37

Page 38: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Histórico das Linguagens de ProgramaçãoHistórico das Linguagens de Programação

•• Existem centenas de linguagens de programação.Existem centenas de linguagens de programação.A d 4 õA d 4 õ•• Agrupadas em 4 gerações:Agrupadas em 4 gerações:–– Primeira geração: linguagem de máquinaPrimeira geração: linguagem de máquina

S d ã d id d d bibli dS d ã d id d d bibli d–– Segunda geração: grande quantidade de bibliotecas de Segunda geração: grande quantidade de bibliotecas de software, sistemas de execução em tempo real e software, sistemas de execução em tempo real e desenvolvimento de gerenciadores de base de dados.desenvolvimento de gerenciadores de base de dados.gg

–– Terceira geração: capacidade estrutural Terceira geração: capacidade estrutural –– Quarta geração: sistemas especialistas, Quarta geração: sistemas especialistas, g pg p

desenvolvimento de inteligência artificial execução dos desenvolvimento de inteligência artificial execução dos programas em paralelo.programas em paralelo.

Adriano Mauro Cansian 38

Page 39: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Processamento de LinguagensProcessamento de Linguagens

•• Embora seja teoricamente possível a construção de Embora seja teoricamente possível a construção de d i i dd i i dcomputadores especiais, capazes de executar computadores especiais, capazes de executar

programas escritos em uma linguagem de programas escritos em uma linguagem de ã lã l d i ãd i ãprogramação qualquer, os programação qualquer, os computadores atuais são computadores atuais são

capazes de executar somente programas em uma capazes de executar somente programas em uma li d í l b i li dli d í l b i li dlinguagem de nível baixo, a linguagem de linguagem de nível baixo, a linguagem de máquinamáquina..

•• Linguagens de máquina: rapidez de execução de Linguagens de máquina: rapidez de execução de programas, do custo de sua implementação programas, do custo de sua implementação

Adriano Mauro Cansian 39

Page 40: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

CompiladoresCompiladores

•• A consideração de diferentes níveis de abstração é naturalmente útil A consideração de diferentes níveis de abstração é naturalmente útil para se entender os programas executados pelos computadores.para se entender os programas executados pelos computadores.para se entender os programas executados pelos computadores.para se entender os programas executados pelos computadores.

•• Por exemplo, se “inicialmente” (anos 50) os programas eram escritos Por exemplo, se “inicialmente” (anos 50) os programas eram escritos em linguagem máquina, essa situação alterouem linguagem máquina, essa situação alterou--se rapidamente por se rapidamente por razões óbvias de eficiência de programação e manutenção de razões óbvias de eficiência de programação e manutenção de programas.programas.

•• Em particular são muito importantes os programas queEm particular são muito importantes os programas que•• Em particular, são muito importantes os programas que Em particular, são muito importantes os programas que

–– Recebem como entrada um texto correspondente a um programa Recebem como entrada um texto correspondente a um programa escrito numa escrito numa linguagem de alto nívellinguagem de alto nível (por exemplo Pascal); e(por exemplo Pascal); e

–– Produzem como saProduzem como saídaída um programa escrito em linguagem um programa escrito em linguagem máquina.máquina.

Adriano Mauro Cansian 40

Page 41: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

CompiladoresCompiladoresCompiladoresCompiladores•• EstesEstes programasprogramas sãosão osos chamadoschamados “compiladores”,“compiladores”, naturalmentenaturalmentep gp g pp

dependentesdependentes dada linguagemlinguagem dede altoalto nívelnível ee dada linguagemlinguagem máquinamáquinapretendidaspretendidas..

•• EE queque ssãoão conceitualmenteconceitualmente semelhantessemelhantes aa funçõesfunções•• EE queque ssãoão conceitualmenteconceitualmente semelhantessemelhantes aa funçõesfunções..

CompiladorProgramaPrograma

Compilador(de Pascal)

MáquinaPascal

25 5

Adriano Mauro Cansian 41

25 5

Page 42: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Processamento de um ProgramaProcessamento de um Programa

If (a>b){

i f ( “A é i ”)printf ( “A é maior”)}else A é maior{

printf (“B é maior”)} Tradutor:}

Compilador +Linkeditor

programa.exe

Adriano Mauro Cansian 42programa.c

Page 43: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Processamento de LinguagensProcessamento de Linguagens

•• Linguagens de programação: facilidade na construção e da Linguagens de programação: facilidade na construção e da confiabilidade de programasconfiabilidade de programasconfiabilidade de programas confiabilidade de programas

•• Um problema básico:Um problema básico:Como uma linguagem de nível mais alto pode ser implementadaComo uma linguagem de nível mais alto pode ser implementada–– Como uma linguagem de nível mais alto pode ser implementada Como uma linguagem de nível mais alto pode ser implementada em um computador cuja linguagem de máquina é bastante em um computador cuja linguagem de máquina é bastante diferente, e de nível bem mais baixo?diferente, e de nível bem mais baixo?

–– Como executar em arquiteturas diferentes?Como executar em arquiteturas diferentes?

•• Existem duas alternativas para esta implementação: Existem duas alternativas para esta implementação: I t t ãI t t ã–– InterpretaçãoInterpretação e e

–– TraduçãoTradução..

Adriano Mauro Cansian 43

Page 44: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

InterpretaçãoInterpretação•• Nesta solução, as ações indicadas pelos comandos Nesta solução, as ações indicadas pelos comandos

da linguagem sãoda linguagem são executadas diretamenteexecutadas diretamenteda linguagem são da linguagem são executadas diretamenteexecutadas diretamente. . 1. Obter o próximo comando do programa1. Obter o próximo comando do programa

2. Determinar que ações devem ser executadas2. Determinar que ações devem ser executadasq çq ç

3. Executar essas ações3. Executar essas ações

•• Esta seqüência é bastante semelhante àquela executada por Esta seqüência é bastante semelhante àquela executada por d di i id di i icomputadores tradicionais:computadores tradicionais:

1. Obter a próxima instrução (PC)1. Obter a próxima instrução (PC)2. Incrementar o PC2. Incrementar o PC3. Decodificar a instrução3. Decodificar a instrução4. Executar a instrução4. Executar a instrução

Adriano Mauro Cansian 44

Page 45: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

Tradução (1)Tradução (1)•• TambTambém chamada genericamente de “compilação”.ém chamada genericamente de “compilação”.•• Programas escritos em linguagem de alto nível são Programas escritos em linguagem de alto nível são

traduzidos para versões equivalentes em linguagem de traduzidos para versões equivalentes em linguagem de máquina antes de serem executadosmáquina antes de serem executadosmáquina antes de serem executadosmáquina antes de serem executados

•• Essa tradução é feita em trEssa tradução é feita em trêsês passos:passos:CompilaCompilaçãoção–– CompilaCompilaçãoção

–– LinkLink--ediediçãoçãoL dL d–– LoaderLoader

Adriano Mauro Cansian 45

Page 46: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

PPProgramaPrograma

If (a>b){

printf ( “A é maior”)}l

pgm1.cpgm1.o

else{

printf (“B é maior”)} pgm2.o

A é maior

If (a>b){

printf ( “A é maior”)}

Compilador programa.exe

}else{

printf (“B é maior”)}

If (a>b){

printf ( “A é maior”)}else{

Linkeditor

3

{printf (“B é maior”)

}pgm2.c pgm3.o

Adriano Mauro Cansian 46pgm3.c

Page 47: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

ProcessamentoProcessamentoProcessamentoProcessamentode Dadosde Dados

PE S

Adriano Mauro Cansian 47

Page 48: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

SoftwareSoftware

Programa Programa

café + =

Adriano Mauro Cansian 48

Page 49: Nú bi á iNúmeros binários e Linggguagens de ...adriano/lc/2009/3-intro-linguagens... · 1 byte = 8 bits 1 Kb (Kilobyte) = 1024 bytes 1 MB (Megabyte) = 1024 KB 1 GB (Gigabyte)

AtAté aqui vimos…é aqui vimos…

•• A representaA representação da informação.ção da informação.Ló i bi á i i f ã di it lLó i bi á i i f ã di it l–– Lógica binária e informação digital.Lógica binária e informação digital.

–– Codificação de informações.Codificação de informações.A li dA li d ãã•• As linguagens de programaAs linguagens de programaçãoção–– Linguagem de mLinguagem de máquina.áquina.

Linguagem de alto nívelLinguagem de alto nível–– Linguagem de alto nível.Linguagem de alto nível.–– Tipos de linguagens e suas características.Tipos de linguagens e suas características.

CompilaCompilaçãoção–– CompilaCompilação.ção.•• Nosso próximo passo: Nosso próximo passo: aprender a programaraprender a programar..

Adriano Mauro Cansian 49