Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução a Programação Fabiano Gonçalves dos Santos Aula 1 Conteúdo • 1.1 Histórico • 1.2 Organização de Computadores 2 © G e o d e z | D re a m s ti m e .c o m © R a d u b 8 5 | D re a m s tim e .c o m Histórico da programação • Na escrita cuneiforme já haviam instruções 3 Os babilônios usavam a numeração em base 60 (números em ponto flutuante) “Para calcular o volume da cisterna, se o seu raio for 2 e sua altura 7, então o volume é 3,1 vezes 2 vezes 2 vezes 7”. © G e o d e z | D re a m s tim e .c o m Histórico da programação 4 h tt p s :/ /p t. w ik ip e d ia .o rg /w ik i/ A l- K h w a ri z m i Abū ‘Abd Allāh Muhammad ibn Mūsā al-Khwārizmī: • Trabalhos algébricos em linguagem natural h tt p s :/ /p t. w ik ip e d ia .o rg /w ik i/ A d a _ L o ve la c e Ada Lovelace é conhecida por ter escrito um algoritmo para a máquina de Charles Babbage Histórico da programação 5 A máquina analítica de BabbageO algoritmo de Ada h tt p :/ /w w w .i n te lle c tu a lv e n tu re s la b .c o m /a s s e ts _ u p lo a d s /a n a ly e n g in e .jp g c o m p u te rh is to ry .o rg Histórico da programação • As primeiras linguagens: –Plankalkul (Konrad Zuse) –Em 1936 criou um computador mecânico (Z1) –Era um ábaco mecânico, controlado por pinos e correias –Programável por fitas perfuradas –Tinha números de ponto flutuante, em binário, com expoentes 6 Histórico da programação • Em 1950, programar dava trabalho: – Um programa levava semanas para ser feito – Programação “física” • Trocar fios de lugar • Cartões perfurados 7 /\/\/\/\/| | . | | . | | o o .ooo| W | oo o. o| i | oo o. oo| k | oo o. o| i | ooo . | p | oo .o o| e | oo .o | d | oo o. o| i | oo . o| a | o.o o| Retorno da carga (CR) | o. o | Início da linha (LF) | . | | . | |/\/\/\/\/ h tt p s :/ /p t. w ik ip e d ia .o rg /w ik i/ P a p e r_ ta p e Histórico da programação • As primeiras ferramentas –Montadores –Compiladores primitivos • SpeedCoding, John Backus, 1954 –Era preciso poupar tempo dos programadores 8 h tt p :/ /h o m e p a g e s .d c c .u fm g .b r/ ~ fe rn a n d o /c la s s e s /d c c 0 2 4 /e m e n ta /r e a d in g M a t/ h is to ry P L .p d f Histórico da programação • Fortran –A primeira linguagem de programação popular –John Backus, IBM • Diminui os erros de programação • Possuía um compilador que gerava código de qualidade –Usada até hoje • Previsão do tempo • Mecânica dos fluidos 9 h tt p s :/ /c o m m o n s .w ik im e d ia .o rg /w ik i/ F ile :F o rt ra n .p n g Histórico da programação • John Backus também contribuiu: –Fortran –Algol 58 e 60 –BNF –FP 10 h tt p :/ /w w w .c o lu m b ia .e d u /c u /c o m p u tin g h is to ry /b a c k u s .h tm l Histórico da programação • LISP –Conferência de IA (1954) • Minksy, Newell, Simon: Logic Theorist: um programa de raciocínio escrito em IPL • McCarthy aprimorou a linguagem, surgindo a linguagem LISP 11 (define fatorial (lambda (n) (let f ((i n) (resultado 1)) (if (= i 0) resultado (f (- i 1) (* resultado i)))))) Lots of Insignificant and Stupid Parenthesis! Histórico da programação • A influência de LISP – Ideias como recursão, expressões condicionais e outras são usadas até hoje –Muitas linguagens funcionais apareceram –A coleta de lixo é usada em linguagens modernas 12 Histórico da programação • Em 1957 havia um problema: –As empresas tinham seus padrões –As universidades tinham seus padrões –Não havia padronização • Aparecimento da linguagem Algol –Universal, independente de máquina • Comitê internacional em 1958 –Algol 58, Algol 60 e Algol 68 13 Histórico da programação • Herança do Algol – Blocos delimitadores – Estrutura léxica de formato livre – Sintaxe definida via BNF – Escopo de bloco para variáveis locais – Tipagem estática com anotações de tipo – Aninhamento de if-then-else – Chamada por valor – Recursão e expressões condicionais – Alocação dinâmica de memória – Procedimentos de primeira classe – Operadores definidos pelo usuário 14 Histórico da programação • Smalltalk – Influenciou a programação orientada a objetos, junto com Simula –Ainda é usada –Tudo é objeto – Implementação simples –Fácil manutenção –Curva de aprendizado pequena 15 Evolução das linguagens 16 Algol 60 CPL BCPL B C C++ Organização de computadores 17 Arquitetura de Von Neumann Organização de computadores 18 Ciclo da arquitetura de Von Neumann, um processador Intel I7 e a sua arquitetura e organização interna h tt p :/ /t e c n o lo g ia .h s w .u o l.c o m .b r/ c o re -i 7 1 .h tm Introdução a Programação Fabiano Gonçalves dos Santos Atividade 1 20 • Quais são as linguagens mais usadas atualmente? 21 h tt p :/ /w w w .t io b e .c o m /i n d e x. p h p /c o n te n t/ p a p e ri n fo /t p c i/ in d e x. h tm l 22 h tt p :/ /w w w .t io b e .c o m /i n d e x. p h p /c o n te n t/ p a p e ri n fo /t p c i/ in d e x. h tm l
Compartilhar