You are on page 1of 33

S Sobre

Linguagens de Programao

Breve introduo s linguagens computacionais de alto nvel.


Nos primrdios da Computao, a programao dos computadores era feita atravs do acionamento (por interruptores) dos rels ou vlvulas. Em outras palavras, programa-se cada bit que o computador iria processar. Obviamente no eram programas to grandes como os de hoje, nem eram muitos os dados a processar. Assemelhava-se mais atual programao de uma calculadora cientfica. Pouco depois, no final dos anos 40, foi feita a primeira linguagem construda para facilitar a programao dos computadores, a chamada linguagem de montagem (assembly ). Esta linguagem permitia o controle dos dispositivos internos do computador atravs de comandos e variveis.Mas foi somente nos anos 50 que foram criadas as chamadas linguagens de alto nvel , que permitiam a programao atravs de comandos com palavras da lngua inglesa (por terem sido criadas nos EUA). Atravs desses comandos, possibilitou-se que fossem criadas estruturas de dados e descritos procedimentos lgicos para soluo de tarefas com mais facilidade (como FORTRAN ou COBOL), ou ainda a criao de estruturas de smbolos para representao do conhecimento (como LISP).Desde ento no existiu uma grande inovao em termos de desenvolvimento de linguagens, embora tenham havido evolues tais como a programao estruturada, a programao orientada a objetos e os ambientes para elaborao de interface. Essa evoluo merece uma breve explicao, que ser dada quando forem citadas as linguagens procedimentais, ou seja, que representam os passos para resoluo de problemas.Alm das linguagens procedimentais, existem as linguagens de fluxo de dados, que possuem um processamento condicionado aos resultados de execues anteriores. A criao deste tipo de linguagem foi feita pensando-se em facilitar a representao do conhecimento.Linguagens Procedimentais Dentro das linguagens para descrio de procedimentos, podem-se distinguir as cientficas e as de bancos de dados. As cientficas so aquelas que permitem facilmente a realizao de clculos e criao de estruturas de dados complexas. As de bancos de dados tm facilidades para a realizao de operaes sobre grandes volumes de dados.Mantidas as definies, cabe ressaltar a evoluo anteriormente mencionada das linguagens procedimentais. Inicialmente elas eram orientadas a passos , tal como um algoritmo tradicional, sendo limitada execuo seguindo a numerao das linhas.Posteriormente, dos anos 60 para os 70, foi aprimorada a programao estruturada , que desvinculava a necessidade de numerao de linhas para o desenvolvimento de programas. As linguagens foram, ento, aperfeioadas com recursos de controle de fluxo, subrotinas e estruturas de dados mais poderosos do que existia. Para exemplificar, os laos dos programas que eram feitos com GOTO, comearam a ser feitos com WHILE, REPEAT, e outros comandos de lao.Dos anos 70 para os 80 foi aperfeioada uma tcnica para modularizar a programao, que

antes poderia ser feita atravs de chamadas de funo e procedimentos. A esta modularizao chamou-se orientao de objetos , que permite, entre outras coisas, facilitar o desenvolvimento de mdulos de um sistema complexo e a criao de estruturas de dados, que contenham tambm procedimentos como registros ou associados a registros de dados.Agora nos anos 90, um recurso que veio a facilitar a vida do programador foi o ambiente para criao de interface, que nada mais do que o recuros das chamadas linguagens visuais . Elas no so mais poderosas, mas facilitam o desenvolvimento de interfaces mais amigveis. Algumas delas tm mais potencial por encorporarem caractersticas tanto das linguagens cientficas como as de bancos de dados, facilitando o desenvolvimento de quem precisava fazer um trecho de cdigo em cada um desses tipos (por exemplo, um programa em COBOL que precisava ter uma ligao com uma funo em C).Algumas das linguagens procedimentais mais relevantes:Nos anos 50, pode-se citar o FORTRAN, que foi criado para suprir as necessidades de realizao de clculos matemticos. At hoje muito usada por engenheiros. Nos anos 60 veio o COBOL, pela preocupao com o desenvolvimento de sistemas administrativos, mais voltados contabilidade, bancos de dados, etc. Ainda nesta dcada surgiu o BASIC, no sentido de facilitar o desenvolvimento de programas por quem no tinha experincia em programao.Nos anos 70, as linguagens cientficas tiveram seu grande salto com o desenvolvimento da PASCAL e C. Estas duas linguagens at hoje so essenciais no aprendizado e desenvolvimento de pequenos programas a grandes sistemas computacionais. Nos anos 80 pode-se ressaltar a linguagem CLIPPER, que desbancou o COBOL como linguagem padro dos sistemas administrativos e comerciais.Nos anos 90, ainda est em desenvolvimento a linguagem JAVA, que alm de sua verso interpretada hoje existente em vrias pginas Web, ter uma verso compilada que visa otimizar a linguagem C.Os termos utilizados aqui referentes a linguagens interpretadas ou compiladas tem o seguinte significado: as do primeiro tipo so executadas por um programa chamado interpretador , j as linguagens do segundo tipo dependem de um programa compilador. Para as linguagens interpretadas, sem o interpretador no possvel a execuo do programa. Os eventuais erros de programao tambm somente so conhecidos durante a execuo do programa.Por outro lado, o compilador gera um cdigo objeto (programa de baixo nvel) que poder ser executado sem a presena do compilador. Os eventuais erros de programao so detectados antes da execuo, quando o programa est sendo compilado. Posteriormente, podero haver erros na execuo, mas estes dependem da compatibilizao do programa com os recursos do computador em que ele est sendo implementado.Linguagens de Fluxo de Dados Em termos de Cincia da Computao, estas linguagens so deixadas em segundo plano, por terem sua aplicao restrita a sistemas de Inteligncia Artificial. Ao contrrio das procedimentais, as de fluxo de dados no dependem de um algoritmo, de um conjunto de procedimentos, mas sim de

quais dados ou regras podem ser validados para determinado problema. Como no tem muitas aplicaes para este tipo de linguagem, tambm no teve uma evoluo rica como as procedimentais. A seguir, so citadas as linguagens de fluxo de dados mais utilizadas:Nos anos 50, pode-se citar o LISP, que originalmente foi implementada para facilitar o desenvolvimento de listas dinmicas (um tipo de estrutura de dados), foi vista como excelente ferramenta para modelagem do raciocnio. At hoje uma importante linguagem para o desenvolvimento de bases de conhecimento e sistemas de organizao complexa.Nos anos 60, foi criada a linguagem LOGO, que, inspirada na LISP e na teoria da construo da inteligncia de Jean Piaget, at hoje utilizada em sistemas educacionais.Nos anos 70 foi criado o PROLOG, que implementa a lgica de predicados numa linguagem computacional. A lgica de predicados permite a contruo de uma representao do conhecimento baseada em regras, facilitando o desenvolvimento de sistemas de Inteligncia Artificial, tal como os Sistemas Especialistas. A histria da linguagem C 1- Das origens ao padro ANSI A linguagem C foi criada na dcada de 70, por um sujeito chamado Dennis Ritchie, nos laboratrios Bell. Para tanto , ele utilizou o sistema operacional Unix e a linguagem BCPL. Baseado nessa linguagem, um outro sujeito, chamado Ken Thompson (que tambm trabalhou na criao de C) havia criado a linguagem B. Como a linguagem de Richie foi posterior, recebeu o nome de C. Durante muito tempo C foi distribudo juntamento com a verso 5 do UNIX. Isso, aliado ao fato de que um cdigo produzido em uma mquina era facilmente recompilado em outra, causou uma popularizao de C, tornando necessria uma padronizao. Essa padronizao se deu em 1983, quando foi estabelecido um padro pelo ANSI (american national standard insitute). Mais que um padro, o ANSI C trouxe inovaes para a linguagem, como o uso de prottipos (discutido em funes). 2- Caracterstcas de C Quanto ao seu nvel, C encontra uma certa dificuldade em ser classificada. Alguns autores costumam defin-la como de nvel baixo, como ASSEMBLY, outros como nvel mdio. Pessoalmente, considero C uma linguagem de nvel mdio, pois apesar da facilidade com que C possibilita manipular Bytes, ela tem uma sntaxe relativamente simples. C altamente portvel. Um cdigo escrito em uma mquina pode facilmente ser compilado em outra. Hoje em dia, essa vantagem no fica

to evidente, pois existe uma certa padronizao . Mas at poucos anos atrs havia uma grande diversidade de hardware, o que causava problemas de incompatibilidade com diversas linguagens. Os arquitetos de C pensaram nisso, criando uma linguagem que ao invs de comandos, usa funes para a entrada e sada de dados. Isso bem explicado em Funes de E/S . Outra caracterstica importante da linguagem o fato de ser uma linguagem estruturada. Por linguagem estruturada, entendemos que C capaz de esconder o cdigo usado para uma determinada funo do resto do programa, atravs de variveis locais e outros conceitos. Porm , C no uma linguagem estruturada de blocos, como Pascal, por exemplo. Isso se deve ao fato de que no capaz de criar procedimentos e funes dentro de outras funes. 3- C hoje em dia Mesmo aps todo esse tempo, C continua sendo bastante utilizada. A linguagem C++ , implementada a partir de C a linguagem mais usada para desenvolvimento de aplicaes comerciais. Como C++ basicamente a linguagem C melhorada e com orientao a objetos, o conhecimento de C essencial para o domnio dessa outra linguagem. A popoularizao do ambiente windows criou um outro uso C. A criao de DLLs, feita atravs dessa linguagem tem sustentado muito programador . Graas portabilidade j discutida antes, C foi a escolha lgica para esse uso. Se C for o pai de C++, podemos dizer que j av. A linguagem JAVA foi desenvolvida atravs de C++, e a coqueluche do momento, pois herdou de seu " av" a portabilidade, o que a tornou uma linguagem multi-plataforma.

O desenvolvimento das linguagens Vrias linguagens, muitas delas conceitualmente diferentes entre si, foram surgindo e sendo aprimoradas, incorporando-se umas em outras. Com algumas poucas excees, o projeto de cada linguagem foi influenciado pela experincia em linguagens anteriores. Merecem especial ateno pelo seu pioneirismo e pelos novos paradigmas que introduziram as linguagens, chamadas de alto nvel: FORTRAN e LISP. Com relao ao FORTRAN, em 1954 ocorreu um simpsio sobre 'computao automtica'3, e seu maior evento foi a apresentao do compilador algbrico de Laning e Zierler (ver captulo Os primeiros 'compiladores'). Foi o primeiro 'software' que permitiu como entrada de dados um cdigo algbrico elegante, embora limitado. Nesse meio tempo John Backus j montara um grupo de pesquisa dentro da IBM para trabalhar em um projeto sobre programao

automtica, para responder a uma questo fundamental: "(...) pode uma mquina traduzir uma linguagem matemtica abrangente em um conjunto razovel de instrues, a um baixo custo, e resolver totalmente uma questo?"77. Em novembro de 1954 a equipe de Backus tinha criado o IBM Mathematical FORmula TRANslation System, o FORTRAN. O primeiro pargrafo da apresentao desse trabalho enfatizava que os sistemas anteriores ofereciam duas escolhas: ou uma fcil codificao e uma execuo lenta do programa ou uma laboriosa codificao com rpida execuo, mas "o FORTRAN propiciava o melhor das duas opes"38. Com o FORTRAN apareceram as expresses simblicas, subprogramas com parmetros, mas principalmente ocorreu a primeira tentativa de se definir rigorosamente a sintaxe de uma linguagem de programao. Um pouco mais tarde surgiu a notao BNF para a descrio sinttica de uma linguagem de programao. A histria do LISP remonta a Turing e Church. Pela anlise de Turing nos anos de 1936 e 1937, aps seu famoso artigo sobre o dcimo problema de Hilbert, o clculo-lambda de Church, apesar da sua sintaxe simples, era suficientemente poderoso para descrever todas as funes mecanicamente computveis, ou seja, pode ser visto paradigmaticamente como uma linguagem de programao. No clculo-lambda muitos problemas de programao, especificamente aqueles referentes s chamadas de procedimento, esto em sua forma mais pura, e isto influenciar diretamente linguagens como LISP e Algol3. Em 1955 e 1956 E.K. Blum, no U.S. Naval Ordinance Laboratory desenvolveu uma linguagem completamente diferente das demais, ADES (Automatic Digital Encoding System), baseada na teoria das funes recursivas e no esquema desenvolvido para elas por Kleene. Foi a primeira linguagem "declarativa", no sentido de que o programador estabelece as relaes entre as variveis quantitativas sem explicitamente especificar a ordem de avaliao (mais frente se falar sobre este paradigma de programao). Aparece agora a figura de John McCarthy, matemtico, um dos primeiros a trabalhar no tema de Inteligncia Artificial. Juntamente com Marvin Minsky iniciou um grande projeto nessa rea. Estava procurando desenvolver uma linguagem algbrica para processamento de listas, preocupado com o problema de como representar informaes da realidade por meio de sentenas escritas em uma linguagem formal adequada, e de como criar um programa que executasse fazendo inferncias lgicas. Surgiu ento o LISP, uma linguagem que pode ser utilizada como um formalismo para descrio de algoritmos, para escrever programas e provar propriedades de algoritmos, sendo adequada computao simblica e inteligncia artificial. Sobretudo com LISP pode-se visualizar melhor um importante conceito na computao moderna que o uso de estruturas de dados como objetos abstratos. um dos aspectos centrais dessa linguagem, comparada a como a Matemtica usa os nmeros naturais como entidades abstratas. Nos incios da dcada de 1960, fruto do trabalho de americanos e europeus,

surgiu uma linguagem projetada para representar algoritmos ao invs de se escrever programas simplesmente, o Algol-60. Ela implementava o conceito de estrutura de blocos, onde variveis, procedimentos, etc., poderiam ser declarados onde quer que o programa os necessitasse. Algol-60 influenciou profundamente muitas linguagens que vieram depois e evoluiu para o Algol68. PL/I surgiu como uma tentativa de se projetar uma linguagem de uso geral reunindo caractersticas de linguagens para aplicaes numricas como FORTRAN e Algol e para processamento de dados comerciais. Ela inovou ao permitir a construo de cdigo de 'baixo nvel' para o controle de excees e o conceito de processamento concorrente, entre outros. O resultado foi algo anmalo, complexo e incoerente, de difcil implementao. Foi a linguagem Pascal entretanto que se tornou a mais popular das linguagens do estilo Algol, porque simples, sistemtica e facilmente implementvel nos diferentes computadores. Junto com o Algol-68, est entre as primeiras linguagens com uma ampla gama de instrues para controle de fluxo, definio e construo de novos tipos de dados. Ada, que veio depois do Pascal, introduziu o conceito de pacotes e permite a construo de grandes programas com estrutura modular. Podem-se discernir na histria das linguagens certas tendncias. A primeira foi perseguir altos nveis de abstrao. Os rtulos simblicos e mnemnicos das linguagens de montagem abstraem cdigos de operao e endereos. Variveis e atribuio abstraem acesso a um endereo de memria e atualizao. Estruturas de dados abstraem formas de armazenamento. Estruturas de controle abstraem desvios. Procedimentos abstraem subrotinas. E assim por diante. Outra tendncia foi a proliferao dos paradigmas. A maioria das linguagens mencionadas at agora so imperativas, caracterizadas por comandos que atualizam variveis. A estrutura das linguagens imperativas induzida pelo hardware, com preocupao de que os dados trafeguem o mais rapidamente possvel. Da alguns de seus aspectos relevantes: sequncia de comandos, atribuio, controles (loopings), etc. ainda o paradigma dominante. J as linguagens que seguem o paradigma funcional (tambm conhecidas como declarativas), como o LISP, tem como caractersticas a clareza e a busca de um maior poder expressivo, procurando manter a maior independncia possvel do paradigma de von Neumann, que caracteriza as linguagens imperativas4. Buscam uma transparncia referencial e a no ocorrncia de efeitos colaterais nas suas instrues. Em LISP no h o conceito de estado - dado por uma atribuio -, memria, sequncia de instrues, etc., procurando-se tornar mais visvel o uso das funes. Nas linguagens imperativas as funes dependem de estados internos, fora de seu contexto ( x := x + 'argumento'), com a produo de efeitos colaterais (alterao de valores, impresso, etc.). LISP foi a ancestral das linguagens funcionais que culminaram atualmente em linguagens como Miranda, ML e

Haskell, que tratam funes como valores de primeira classe. Smalltalk uma linguagem baseada em classes de objetos. Um objeto uma varivel que pode ser acessada somente atravs de operaes associadas a ele. Smalltalk um exemplo de uma linguagem que segue o paradigma de orientao a objeto. Simula foi um ancestral de tais linguagens. importante reparar que a notao matemtica em sua generalidade no facilmente implementvel. No entanto muitos projetistas de linguagens quiseram explorar subconjuntos da notao matemtica em linguagens de programao. Surgiram ento tentativas de se contruir uma 'linguagem lgica', isto , baseada em um subconjunto da lgica matemtica. O computador programado para inferir relacionamentos entre valores, ao invs de computar valores de sada a partir de valores de entrada. Prolog popularizou a linguagem lgica. Em sua forma pura fraca e ineficiente, tendo sido alterada para incluir caractersticas no lgicas e tonar-se mais amigvel como linguagem de programao. No incio da dcada de 1990 ocorreu um difuso intensa do paradigma da orientao a objeto5. Este paradigma esteve em gestao por cerca de 30 anos e as novas tecnologias como a Internet, as necessidades geradas pela novas arquiteturas, tais como a de cliente-servidor6 e a do processamento distribudo, coincidiam com o paradigma da orientao a objeto: encapsulamento, mensagem, etc. O crescimento da Internet e o "comrcio eletrnico" introduziram novas dimenses de complexidade no processo de desenvolvimento de programas. Comearam a surgir linguagens que buscam superar esses novos desafios de desenvolvimento de aplicaes em um contexto heterogneo ( arquiteturas de hardware incompatveis, sistemas operacionais incompatveis, plataformas operando com uma ou mais interfaces grficas incompatveis, etc). Apareceram C++ e linguagens como Eifell, Objective C, Cedar/Mesa (elaborada pela Xerox, para fazer pesquisa de dados), Delphi (uma evoluo da lingaugem Pascal) entre outras. E, "o prximo passo ou um paradigma completamente novo"28, surge a linguagem JAVA. A origem da Java est ligada a um grupo de pesquisa e desenvolvimento da Sun Microsystems formado em 1990, liderado por Patrick Naughton e James Gosling, que buscava uma nova ferramenta de comunicao e programao, independente da arquitetura de qualquer dispositivo eletrnico. Em 1994, aps o surgimento do NCSA Mosaic e a popularizao da Internet, a equipe refocalizou seus esforos para criar uma linguagem para aplicaes multimdia on line. Conforme Linden47, Java foi inspirada por vrias linguagens: tem a concorrncia da Mesa, tratamento de excees como Modula-3, linking dinmico de cdigo novo e gerenciamento automtico de memria como LISP, definio de interfaces como Objective C, e declaraes ordinrias como C. Apesar destas qualidades, todas importantes, na verdade duas outras

realmente fazem a diferena e tornam Java extremamente atrativa: sua portabilidade e o novo conceito de arquitetura neutra. Portabilidade significa que Java foi projetada objeticando aplicaes para vrios sistemas heterogneos que podem compor uma rede como a Internet, por exempo, e as diferentes caractersticas dessa rede. Java procura obter os mesmos resultados de processamento nas diferentes plataformas. Por arquitetura neutra entende-se que programas em Java so compilados para se obter um cdigo objeto (byte code na terminologia Java) que poder ser executado em um Power PC que use o sistema operacional OS/2, ou em um sistema baseado no chip Pentium debaixo do Windows 95 ou em um Macintosh usando MacOs, ou em uma estao de trabalho Sparc rodando Unix. Ou seja, em qualquer computador, desde que tal computador implemente o ambiente necessrio para isso, denominado conceitualemente de Mquina Virtual Java. Com a linguagem Java comeou superar-se a barreira para a Internet tornarse um computador: a barreira que impede o uso de um software utilizado em um determinado lugar, executando-o em qualquer plataforma.

e trabalho Sparc rodando Unix. Ou seja, em qualquer computador, desde que tal computador implemente o ambiente necessrio para isso, denominado conceitualemente de Mquina Virtual Java. Com a linguagem Java comeou superar-se a barreira para a Internet tornar-se um computador: a barreira que impede o uso de um software utilizado em um determinado lugar, executando-o em qualquer plataforma. TEXTO 02
Linguagem da programao Presentation Transcript
1. Histria das Linguagens de Programao 2. O que linguagem de programaoUma linguagem de programao um mtodo padronizado para expressar instrues para um computador. um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador

vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias. 3. O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o cdigo fonte de um software. Esse cdigo fonte depois traduzido para cdigo de mquina, que executado pelo processador 4. Uma das principais metas das linguagens de programao permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenes mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (cdigo de mquina). Assim, linguagens de programao so projetadas para adotar uma sintaxe de nvel mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programao so ferramentas importantes para que programadores e engenheiro de software possam escrever programas mais organizados e com maior rapidez 5. O primeiro trabalho de linguagem de programao foi criado para um computador que existia, criado pelo Ada Lovelace, esposa de William King-Noel. O projeto do primeiro computador foi idealizado por Charles Babbage que, aps gastar fortunas e um longo tempo, no conseguiu concretizar o projeto. A linguagem de programao ADA foi batizada em homenagem a esta primeira programadora. 6. Uma das primeiras linguagens de programao para computadores foi provavelmente Plankalkl, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programao.A primeira linguagem de programao de alto nvel amplamente usada foi Fortran, criada em 1954 7. Em 1957 foi criada B-O, que daria origem a FlowMatic (1958), antecessor imediato de Cobol, de 1959. LIsp e Algol foram criadas em 1958. 8. Diferena entre linguagem interpretada,compilada e scripts 9. Linguagem interpretada uma linguagem de programao, onde o cdigo fontr nessa linguagem executado por um programa de computador chamado interpretador, que em seguida executado pelo sistema operacional ou processador.

Mesmo que um cdigo em uma linguagem passe pelo processo de compilao, a linguagem pode ser considerada interpretada, se o programa resultante no for executado diretamente pelo sistema operacional ou processador. Um exemplo disso o Bytecode, que um tipo de linguagem interpretada, que passa pelo processo de compilao e, em seguida, executado por uma mquina virtual, cuja sintaxe similar a cdigo de mquina e cada comando ocupa 1 byte. Existem tambm, as linguagens de script, que so linguagens interpretadas, executadas do interior de programas e/ou de outras linguagens de programao. 10. Linguagem compiladauma linguagem de programao, onde o cdigo fonte nessa linguagem executado diretamente pelo sistema operacional ou pelo processador, aps ser traduzido, atravs de um processo chamado compilao, usando um programa de computador chamado compilador, para uma linguagem de baixo nvel, como linguagem de montagem ou cdigo de mquina. 11. Linguagem de scriptTambm conhecido como linguagem de scripting, ou linguagem de extenso, so linguagens de programao executadas do interior de programas e/ou de outras linguagens de programao, no se restringindo a esses ambientes. As linguagens de script servem para estender a funcionalidade de um programa e/ou control-lo, acessando sua API e, so freqentemente usadas como ferramentas de configurao e instalao em sistemas operacionais(Shell script), como por exemplo, em alguns sistemas operacionais da famlia Linux, que usam a linguagem bash. So tambm frequentemente usadas em jogos, como por exemplo, o jogo Impossible Creatures, que usa a linguagem Lua para controlar as aes dos personagens e o ambiente de batalha. 12. O que um paradigma de programao?Modelo, padro ou estilo de programao suportado por linguagens que agrupam certas caractersticas comunsA classificao de linguagens em paradigmas uma conseqncia de decises de projeto que impactam radicalmente a forma na qual uma aplicao real modelada do ponto de vista computacional 13. O Paradigma ImperativoProgramas centrados no conceito de um estado (modelado por variveis) e aes (comandos) que manipulam o estadoParadigma tambm denominado de procedural, por incluir sub-rotinas ou procedimentos como mecanismo de estruturaoPrimeiro paradigma a surgir e

ainda o dominante 14. Modelo Computacional do Paradigma ImperativoEntradaSadaProgramaEstado 15. Vantagens do modelo imperativoEficincia (embute modelo de Von Neumann)Modelagem natural de aplicaes do mundo realParadigma dominante e bem estabelecido 16. Desvantagens do paradigma imperativoRelacionamento indireto entre E/S resulta em:difcil legibilidadeerros introduzidos durante manutenodescries demasiadamente operacionais focalizam o como e no o que 17. O Paradigma Orientado a ObjetosNo um paradigma no sentido estrito: uma subclassificao do imperativoA diferena mais de metodologia quanto concepo e modelagem do sistema A grosso modo, uma aplicao estruturada em mdulos (classes) que agrupam um estado (atributos) e operaes (mtodos) sobre esteClasses podem ser estendidas e/ou usadas como tipos (cujos elementos so objetos) 18. Modelo Computacional do Paradigma Orientado a ObjetosEntradaSadaProgramaEntradaSadaProgramaEstadoEs tadoEntradaSadaProgramaEntradaSadaEntradaSadaProgram aProgramaEstadoEstadoEstado............ 19. Vantagens do Paradigma Orientado a objetosTodas as do estilo imperativoClasses estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidadeAceitao comercial crescente 20. Problemas do Paradigma OOSemelhantes aos do paradigma imperativo, mas amenizadas pelas facilidades de estruturao 21. O Paradigma Orientado a AspectosNo um paradigma no sentido estritoA diferena mais de metodologia quanto concepo e modelagem do sistema uma nova forma de modularizao: Para requisitos que afetam vrias partes de uma aplicao 22. O Paradigma Orientado a AspectosA grosso modo, uma aplicao estruturada em mdulos (aspectos) que agrupam pontos de interceptao de cdigo (pointcuts) que afetam

outros mdulos (classes) ou outros aspectos, definindo novo comportamento (advice)Aspectos podem ser estendidos e/ou usados como tipos 23. Modelo Computacional do Paradigma Orientado a AspectosEntradaSadaProgramaEntradaSadaProgramaEstadoE stadoEntradaSadaProgramaEntradaSadaEntradaSadaProgra maProgramaEstadoEstadoEstadoAspectoAspecto............ 24. Vantagens do Paradigma Orientado a AspectosTodas as do paradigma OOtil para modularizar conceitos que a Orientao a Objetos no consegue (crosscutting concerns)Em especial, aqueles ligados a requisitos no funcionaisAumenta a extensibilidade e o reuso 25. Problemas do Paradigma Orientado a AspectosSemelhantes aos do OOAinda preciso diminuir a relao entre classes e aspectosProblemas de conflito entre aspectos que afetam a mesma classe 26. O Paradigma FuncionalProgramas so funes que descrevem uma relao explcita e precisa entre E/SEstilo declarativo: no h o conceito de estado nem comandos como atribuio Conceitos sofisticados como polimorfismo, funes de alta ordem e avaliao sob demanda Aplicao: prototipao em geral, IA, concorrncia, ... 27. Modelo Computacional do Paradigma FuncionalEntradaSadaPrograma 28. Viso Crtica do Paradigma FuncionalVantagensManipulao de programas mais simples:Prova de propriedades- Transformao (exemplo: otimizao)Concorrncia explorada de forma naturalProblemasO mundo no funcional!Implementaes ineficientesMecanismos primitivos de E/S e formatao 29. O Paradigma LgicoProgramas so relaes entre E/SEstilo declarativo, como no paradigma funcionalNa prtica, inclui caractersticas imperativas, por questo de eficinciaAplicaes: prototipao em geral, sistemas especialistas, banco de dados, ... 30. Modelo Computacional do Paradigma LgicoEntradaSadaPrograma

31. Viso Crtica do Paradigma LgicoVantagensEm princpio, todas do paradigma funcionalPermite concepo da aplicao em um alto nvel de abstrao (atravs de associaes entre E/S)ProblemasEm princpio, todos do paradigma funcionalLinguagens usualmente no possuem tipos, nem so de alta ordem 32. Geraes de Linguagem de Programao.Primeira Gerao: Linguagem de maquina (Binria)Usa apenas 0 (zero) e 1 (um) para programarsoftwares. Originalmente nenhum tradutor foi usado para montaras linguagens de primeira gerao. As instrues de programao eram submetidas atravs dos interruptoreslocalizados no painel frontal de sistemas de computadores. O principal benefcio na primeira gerao que o cdigo escrito pelo usurio muito rpido e eficiente, desde que este cdigo seja diretamente executado pela CPU. 33. Geraes de Linguagem de Programao.Segunda Gerao: Linguagem de montagem (Assembly) uma notao legvel por humanos para o cdigo de mquina que uma arquitetura de computador especfica usa. A linguagem de mquina, que um mero padro de bit, torna-se legvel pela substituio dos valores em bruto por smbolos chamados mnemnicos, ou seja, enquanto um computador sabe o que a instruo-mquina IA-21 (10110000 01100001) faz, para os programadores mais fcil recordar a representao equivalente em instrues mnemnicas 34. Geraes de Linguagem de Programao.Terceira Gerao:Linguagem de alto nvel (Fortran, C, ALGOL , COBOL...)projetada para ser facilmente entendida pelo ser humano, incluindo coisas como variveis com nomes. Um exemplo disso seria: COMPUTE COMISSAO = VENDA * 0,5 35. Geraes de Linguagem de Programao.Quarta Gerao: Linguagem de alto nvel (FOCUS, NATURAL, SQL...)So linguagens capazes de gerar cdigo por si s. So linguagens orientadas a objetos, tornando possvel a reutilizao de partes do cdigo para outros programas. Diferena entre a 3GL e 4GL, que as primeiras descrevem como fazer algo, enquanto a segunda descreve o que voc quer que seja feito. 36. Geraes de Linguagem de Programao.Quinta Gerao:Linguagens naturais (LISP)So linguagens de programao usadas para criar programas para inteligncia

artificial e sistemas especialistas que permitem aos programadores se comunicarem com o computador usando sentenas normais.Em 1982 o governo japons lanou o projeto FGCS , que visava construir uma maquina paralela incluindo programao lgica e tcnicas de inteligncia artificial que teve fim dez anos depois,por no despertar muito interesse na indstria. 37. Tipos de Linguagem de programaoFracamente tipada, como PHP e Smalltalk, onde o tipo da varivel muda dinamicamente conforme a situao. Fortemente tipada, como Java e Ruby, onde o tipo da varivel, uma vez atribudo, se mantm o mesmo at ser descartada da memria. Dinamicamente tipada, como Perl, Python e Ruby, onde o tipo da varivel definido em tempo de execuo. Estaticamente tipada, como Java e C, onde o tipo da varivel definido em tempo de compilao. 38. Evoluo centrada em nveis crescentes de abstraoLinguagens de mquinaEndereos fsicos e operation codeLinguagens AssemblyMnemnicos e labels simblicosLinguagens de alto nvelVariveis e atribuio (versus acesso direto memria)Estruturas de dados (versus estruturas de armazenamento) 39. Evoluo centrada em nveis crescentes de abstraoEstruturas de controle (versus jumps e gotos)Estrutura de blocos como forma de encapsulamentoGeneralizao e parametrizao (abstrao de tipos de valores) 40. Quanto ao grau de abstraoLinguagem de programao de baixo nvel, cujos simbolos so uma representao direta do cdigo de mquina que ser gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como AssemblyLinguagem de programao de mdio nvel, que possui smbolos que podem ser convertidos diretamente para cdigo de mquina (goto, expresses matemticas, atribuio de variveis), mas tambm smbolos complexos que so convertidos por um compilador. Exemplo: C, C++Linguagem de programao de alto nvel, composta de smbolos mais complexos, inteligvel pelo ser humano e no-executvel diretamente pela mquina, no nvel da especificao de algoritmos, como Pascal, Fortran, ALGOL e SQL 41. ExemplosAssemblyCriada na dcada de 50, o Assembly foi

das primeiras linguagens de programao a aparecer. Ela usa uma sintaxe complicada e "exageradamente" difcil, isto porque, antes da dcada de 50 os programadores de mquinas tinham que escrever instrues em cdigo binrio, qualquer coisa como: 0110010110011011010110011010111010110101 ... Para escrever uma instruo. Na verdade, o Assembly foi criado para facilitar o uso dessa tarefa, mas considerado uma linguagem de baixo nvel, pois tudo o que o processador interpreta tem que ser descrito pelo programador. Assim o cdigo acima seria "add EAX" em Assembly. Bastava apenas, depois de estar concluda a escrita do cdigo, rodar o compilador e tnhamos o programa. 42. ExemplosFortranEsta linguagem Fortran (Formula Translator) uma linguagem de Alto nvel, que foi criada partindo do problema e da dificuldade apresentadas pelo Assembly. Apareceu tambm na dcada de 50 e foi considerada uma das melhores linguagens da poca. Aqui temos vrias funes e instrues pr-definidas que nos permite poupar tempo na datilografia de instrues base do processador, ao contrrio da linguagem Assembly. 43. ExemplosPascalOutra linguagem de Alto nvel dos anos 60, bem estruturada, mas com regras rgidas, o que a torna difcil de modelar, para se criar novas idias. a tpica linguagem usada para iniciar os cursos de Programao. Habitualmente ambientes de desenvolvimento (IDE) como o FreePascal, o Kylix e o Delphi so timas opes para se programar em Pascal.

TEXTO 3

Linguagens de programao 03-12-09 Document Transcript


1. 1

2. ESCOLA SECUNDRIA DE SANTO ANDR Curso e Turma: Instalao e Manuteno de Sistemas Informticos, EFA 4S Disciplina: Programao Web Nome do Trabalho: Linguagens de Programao Nome do Aluno: Miguel Marques, Paulo Rosrio e Bruno Gonalves Nome do Formador: Guilherme Batista Data do Trabalho: 03-12-2009 2 3. NDICE 1. Introduo pg: 3 2. ndice pag. 4 3. Principais concitos na rea da programaoC pg: 5 4. Tipos de Linguagens pg: 6 a 8 5. Histria da Linguagem pg: 9 a 11 6. Objectivos e Caractersticas da Linguagem C pg: 11 a 16 7. Cdigo Fonte pg: 17 8. Cdigo Mquina pg: 17 a 18 9. Software de traduo pg: 18 10. Compilador pg: 18 a 19 11. Interpretador pg: 20 12. Concluso pg: 21 13. Referencias Bibliogrficas pg : 22 3 4. Introduo Neste trabalho vai ser feita uma pequena abordagem ao mundo da programao, seus principais conceitos e os vrios tipos de linguagens de programao. Depois ficaremos a conhecer uma das lnguas mais influentes no interior da programao, quais as suas caractersticas e os seus objectivos. Vamos tambm neste trabalho abordar a definio de cdigo mquina e cdigo fonte, falaremos tambm de compiladores e interpretadores quais as suas funes as suas diferenas. 4 5. Principais conceitos na rea da programao Antes de falarmos do que so, de como so constitudas e de como evoluram, ser apresentada a definio de certos conceitos importantes e que sero varias vezes falados mais frente. Algoritmo uma sequncia finita de instrues bem definidas e no ambguas, sendo que cada uma pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita Wikipedia a forma atravs da qual resolvemos problemas, a descrio, de forma lgica, dos passos que devem ser tomados para ser realizada uma dada tarefa. Programa Um programa de computador, ou software, um conjunto de instrues que descrevem a forma como uma tarefa que ser executada por um computador. Um programa oferece ao utilizador a possibilidade de realizar uma ou mais tarefas especficas. A programao ser ento a cincia que nos permite criar programas. Linguagens de programao Assim como outra lngua qualquer, as linguagens de programao obedecem a um conjunto de regras sintcticas e semnticas usadas para definir o programa. utilizado um conjunto de cdigos composto, por palavras e

smbolos, que constituem o cdigo fonte do programa. Para o processador executar um programa, o cdigo fonte necessita de ser traduzido para cdigo mquina. Existem vrios tipos de linguagens, sendo que cada uma delas tem caractersticas e aplicaes diferentes. Toda a linguagem de programao tm um ambiente de programao, por exemplo bloco de notas do Windows, e algumas podem ter mais que um ambiente. Podemos classifica-las de acordo com o paradigma de programao, geraes, quanto ao grau de abstraco e de acordo com o tipo de estrutura. 5 6. Paradigma de Programao O paradigma basicamente a ideia central onde se baseia a linguagem, existindo 4 paradigmas: Paradigma Imperativo que se baseia em comandos e procedimentos Ex: Pascal, C e Fortran. Paradigma Orientado a Objectos - baseado em objectos e classes. Ex: Java, Simula e Smalltalk. Paradigma Funcional que se baseia em funes. Ex: Haskel, Lisp, ML, Scheme. Paradigma Lgico baseado na lgica de predicados, factos e regras. Ex: Prolog, Life, Mercury Diferentes nveis ou graus de abstraco das linguagens - Linguagens de mquina; - Linguagens de baixo nvel; - Linguagens de alto nvel. Linguagens de mquina As linguagens de mquina so linguagens de baixo nvel e fornecem ao computador as operaes fundamentais para seu funcionamento. Cada instruo geralmente formada por um cdigo de operao e um ou dois endereos de memria. a nica linguagem compreendida pelo processador, pois utiliza unicamente a notao binria, 0's e 1's ou On e Off. Apesar de ser mais rpida que a linguagem de alto nvel, bastante mais difcil de utilizar. A programao de um algoritmo complexo neste tipo de linguagem complexa, cansativa e fortemente sujeita a erros, sendo depois quase impossvel encontrar o erro. As linguagens de mquina so dependentes do processador, ou seja, uma determinada linguagem de mquina s poder usada por um tipo de computador. Exemplo de uma pequena poro do cdigo mquina do processador desenhado por Von Neumman em 1946: 00000010101111001010000000101111110010000000001100 1110101000 6 7. Linguagens de baixo nvel Foram projectadas minimizar as dificuldades da programao em notao binria. So bastante prximas das linguagens de mquina, mantendo a mesma estrutura e conjunto de instrues, mas permite que o programador utilize nomes, chamados mnemnicos, e smbolos em lugar dos 0s e 1s. So chamadas de linguagens

Assembly ou montagem. Os programas so executados com maior velocidade de processamento e ocupam menos espao na memria. Por outro lado os programas em Assembly tem pouca portabilidade, o cdigo criado para um tipo processador no serve para outro diferente, e no so estruturados o que torna a programao mais difcil. Nesta linguagem a maioria das instrues so representaes simblicas de instrues de linguagem mquina. O processamento de um programa em linguagem simblica requer traduo para linguagem de mquina antes de ele ser executado pelo processador. Linguagens de alto nvel So as mais prximas linguagem humana e mais distantes das linguagens de mquina, o que torna mais fcil a sua compreenso. Utilizam uma sintaxe estruturada que torna o seu cdigo mais legvel e fazem uso de palavras reservadas como READ, WRITE, TYPE, etc. So precisos compiladores ou interpretadores para gerar instrues do microprocessador, que permitem, teoricamente, que possa a linguagem possa ser utilizada em qualquer computador. Os interpretadores fazem a interpretao de cada instruo do programa fonte e executa-a dentro de um ambiente de programao, por exemplo Basic e Java. Os compiladores traduzem todas as instrues do programa fonte gerando um programa executvel (*. exe), por exemplo C e Pascal. Em relao s linguagens de baixo nvel os problemas so resolvidos de forma mais fcil e rpida. Geraes 1 Gerao - Linguagem mquina ou binria e Assembly; 2 Gerao Sistemas de execuo em tempo real e desenvolvimento de gestores de Base de Dados; Ex: COBOL, BASIC e FORTRAN IV/V. 7 8. 3 Gerao - capacidade procedural e estrutura; Ex: Pascal, C e SIMULA 4 Gerao - sistemas especialistas, desenvolvimento de inteligncia artificial e execuo dos programas em paralelo. Ex: SQL e QBE. 5 Gerao Linguagens de especificao de problemas E: LISP e PROLOG. Estrutura de tipos . Fracamente tipada Ex: Smalltalk . Fortemente tipada ex: Java e Ruby . Dinamicamente tipada ex: Perl, Ruby e Python . Estticamente tipada - ex: Java e C Domnios de aplicao . Cientificas ALGOL, BASIC e FORTRAN. . Comerciais COBOL. 8 9. Histria da Linguagem C Poder-se ia dizer que o C uma das maravilhas das linguagens de programao. Muitos dos programas existentes hoje foram escritos nesta linguagem. O C foi desenvolvido nos laboratrios na dcada de 70.Possui as seguintes caractersticas; portabilidade entre mquinas e

sistemas operacionais. Dados compostos em forma estruturados, total interaco tanto com o SO como a mquina e o cdigo compacto e rpido. Nos anos 80, C era a linguagem mais utilizada por programadores, por permitir a escrita intensiva de todas as caractersticas das linguagens anteriores. O Prprio UNIX e Linux foram escritos em C, assim como o front end do MS-DOS, Windows e as aplicaes Office mais usadas no mundo (OpenOffice.org, Microsoft Office, embora cada uma delas incluir as suas prprias linguagens de script), sendo tambm utilizada em aplicaes grficas e criao de efeitos especiais nos filmes Strar Trek e Star Wars.E as vantagens de programas extremamente rpidos e pequenos, desvantagens o tempo de desenvolvimento lento e sujeito a erros. Kenneth Thompson ( esquerda) e Dennis Ritchie ( direita), os criadores da linguagem C. O desenvolvimento inicial da linguagem C ocorreu nos laboratrios Bell da AT&T entre 1969 e 1973. Segundo Ritchie, o periodo mais criativo ocorreu em 1972. Deu-se o nome C linguagem porque muitas das suas caractersticas derivaram de uma linguagem de programao anterior chamada B. H vrios relatos que se referem origem do nome B: Ken Thompson d crdito linguagem de programao BCPL, mas ele tambm criou uma outra linguagem de programao chamada Bon, em honra da sua mulher Bonnie. Por volta de 1973, a linguagem C tinha se tornado suficientemente poderosa para que grande parte do ncleo de UNIX, originalmente escrito na linguagem de programao, fosse reescrito em C. Este foi um dos primeiros ncleos de sistema operativo que foi implementado numa linguagem sem ser o Assembly, sendo exemplos 9 10. anteriores do sistema. Em 1978, Ritchie e Kernighan publicaram a primeira edio do livro The C Programming Language. Esse livro, conhecido pelos programadores de C como "K&R", serviu durante muitos anos como uma especificao informal da linguagem. A verso da linguagem C que ele descreve usualmente referida como "C de K&R". (A segunda edio do livro cobre o posterior padro ANSI C, descrito abaixo.) K&R introduziram as seguintes caractersticas na linguagem: Tipos de dados struct Tipos de dados long int Tipos de dados unsigned int O operador =+ foi alterado para +=, e assim sucessivamente (a anlise lxico do compilador confundia o operador =+. Por exemplo, i =+ 10 e i = +10). C de K&R frequentemente considerado a parte mais bsica da linguagem cujo suporte deve ser assegurado por um compilador C. Durante muitos anos, mesmo aps a introduo

do padro C ANSI, ele era considerado o "menor denominador comum" em que programadores de C se apoiavam quando uma portabilidade mxima era desejada, j que nem todos os compiladores eram actualizados para suportar na ntegra o padro C ANSI, e o cdigo C de K&R razoavelmente bem escrito tambm vlido em relao ao C ANSI.Nos anos que se seguiram publicao do C K&R, algumas caractersticas "nooficiais" foram adicionadas linguagem, suportadas por compiladores da AT&T e de outros vendedores. Funes void e tipos de dados void Funes que retornam tipos struct ou union Campos de nome struct num espao de nome separado para cada tipo struct Atribuio a tipos de dados struct Qualificadores const para criar um objecto s de leitura Uma biblioteca-padro que incorpora grande parte da funcionalidade implementada por vrios vendedores Enumeraes O tipo de ponto-flutuante de preciso simples 10 11. Durante os finais da dcada de 1970, a linguagem C comeou a substituir a linguagem BASIC como a linguagem de programao de microcomputadores mais usada. Durante a dcada de 1980, foi adoptada para uso no PC IBM, e a sua popularidade comeou a aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratrios Bell, comeou a trabalhar num projecto onde se adicionavam construes de linguagens de programao orientada por objectos linguagem C. A linguagem que eles produziram, chamada C++, nos dias de hoje a linguagem de programao de aplicaes mais comum no sistema operativo Windows da companhia Microsoft; C permanece mais popular no mundo UNIX. Objectivos e caractersticas da Linguagem C A linguagem C surgiu com o objectivo de facilitar a criao de programas mais extensos e com um menor nmero de erros apelando ao paradigma da programao algortmica, sobrecarregando menos o autor do compilador, visto as caractersticas desta linguagem serem complicadas. Dentro da linguagem C temos as seguintes caractersticas: . uma linguagem nuclear extremamente simples, com funcionalidades no essenciais tais como as funes matemticas ou manuseamento de ficheiros (arquivos), fornecida por um conjunto de bibliotecas de rotinas padronizadas; . A sua focalizao no paradigma de programao procedimento; . Tm um sistema de tipos simples que evita vrias operaes que no fazem sentido; . O

Uso de uma linguagem de pr-processamento, o prprocessador de C, para tarefas tais como a definio de macros e a incluso de mltiplos ficheiros de cdigo fonte; . Ponteiros do maior flexibilidade linguagem; 11 12. . Acesso de baixo nvel atravs de incluses de cdigo Assembly no meio do programa C; . Parmetros que so sempre passados por valor para as funes e nunca por referncia ( possvel simular a passagem por referncias com o uso de ponteiros); . Definio do alcance lexical de variveis; Estruturas de variveis, (structs), que permitem que dados relacionados sejam combinados e manipulados como um todo. Apesar das suas caractersticas atrs descritas, faltam a linguagem C outras que se podem encontrar em outras linguagens, como por exemplo: . Segurana de tipo; . Colector de lixo (mais comum em linguagens interpretadas); . Vectores que crescem automaticamente; . Classes ou objectos com comportamento; . Closures; . Funes aninhadas; . Programao genrica; . Sobrecarga de operadores; . Metaprogramao; . Apoio nativo de multithreading e comunicao por rede 12 13. O conceito de Variveis As variveis no C podem ter qualquer nome se duas condies forem satisfeitas: o nome deve comear com uma letra ou sublinhado (_) e os caracteres subsequentes devem ser letras, nmeros ou sublinhado (_). H apenas mais duas restries: o nome de uma varivel no pode ser igual a uma palavra reservada, nem igual ao nome de uma funo declarada pelo programador, ou pelas bibliotecas do C. Variveis de at 32 caracteres so aceitas. Mais uma coisa: bom sempre lembrar que o C "case sensitive" e portanto deve-se prestar ateno s maisculas e minsculas. uma prtica tradicional do C, usar letras minsculas para nomes de variveis e maisculas para nomes de constantes. Isto facilita na hora da leitura do cdigo; Quando se escreve cdigo usando nomes de variveis em portugus, evita-se possveis conflitos com nomes de rotinas encontrados nas diversas bibliotecas, que so em sua maioria absoluta, palavras em ingls. Os Tipos do C O C tem 5 tipos bsicos: char, int, float, void, double.O double o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais preciso. O void o tipo vazio, ou um "tipo sem tipo". Constantes Constantes so valores que so mantidos fixos pelo compilador. J usamos constantes neste curso. So consideradas constantes, por exemplo, os nmeros e caracteres como 45.65 ou 'n', etc. - Constantes dos tipos

bsicos Abaixo vemos as constantes relativas aos tipos bsicos do C: Exemplos de Constantes char 'b' 'n' '0' int 2 32000 -130 long int 100000 -467 short int 100 -30 unsigned int 50000 35678 float 0.0 23.7 -12.3e-10 double 12546354334.0 -0.0000034236556 13 14. As estruturas de controlo de fluxo so fundamentais para qualquer linguagem de programao. Sem elas s haveria uma maneira do programa ser executado: de cima para baixo comando por comando. No haveria condies, repeties ou saltos. A linguagem C possui diversos comandos de controlo de fluxo. possvel resolver todos os problemas sem utilizar todas elas, mas devemos nos lembrar que a elegncia e facilidade de entendimento de um programa dependem do uso correcto das estruturas no local certo. O Comando if, comando else, comando switch, comando for, comando while, comando break, comando continue, comando goto. Um exemplo: #include <stdio.h> int main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) printf ("nnO numero e maior que 10"); else if (num==10) { printf ("nnVoce acertou!n"); printf ("O numero e igual a 10."); } else if (num<10) printf ("nnO numero e menor que 10"); return(0); } Software para linguagem C 14 15. "IDE para programao de executveis Win32, console ou GUI na linguagem C/C++." Por existirem vrias linguagens de programao disponveis no mercado, cada uma delas tinha de possuir pontos onde se especializavam mais para conseguir cativar o interesse dos programadores. Dentro da maioria das linguagens os seus objectivos a atingir so: . COBOLProcessamento de Registos . PASCAL- Ensino de Tcnicas de Programao . FORTRAN- Clculo Cientfico . LISP e PROLOGVocacionam para reas de Inteligncia Artificial J na linguagem C no existe nenhuma rea de destino em particular, habitualmente se denomina por General Purpose, esta uma das vantagens, pois tem a capacidade de adaptar qualquer desenvolvimento num projecto, como sistemas operativos, interfaces grficas, processamento de registos, ect. A linguagem C utilizada tambm para escrever compiladores de outras linguagens, uma linguagem extraordinariamente robusta e malevel. Rapidez consegue atingir performance semelhante do Assembly, usando instrues de alto nvel, isto instrues semelhantes h linguagem PASCAL ou COBOL, mesmo para aceder a mecanismos de mais baixo nvel, como o de endereamento ou manipulao de Bits.

Simples de sintaxe extremamente simples e o nmero de palavras reservadas, tipos de dados bsicos e operadores reduzido, fazendo diminuir a quantidade de tempo e esforo necessrio aprendizagem da linguagem. Portvel existente um standard (ANSI) que define caractersticas de qualquer compilado, deste modo o cdigo escrito numa mquina, pode ser ento transportado para outra mquina e compilado sem qualquer alterao, (ou com um numero reduzido). 15 16. Popular conhecida internacionalmente e utilizada, esta porem muito bem documentada em livros, revistas de especialidade, manuais, etc. Existe compiladores para qualquer tipo de arquitecturas e computadores. Modular permite o desenvolvimento modular em aplicaes, facilitando a separao de projectos em mdulos distintos, independentes, recorrendo utilizao de funes especficas de cada mdulo. Alto Nvel h a possibilidade de manipular a memria directamente, utilizando o endereo de qualquer objecto (seja varivel ou funo), manipulando directamente a memria sem ter qualquer restrio o que aumenta a flexibilidade da linguagem. Livrarias muito poderosas tem um nmero reduzido de palavras-chave, o que indica que as suas capacidades so limitadas na realidade. A maior parte das funcionalidades da linguagem so-lhe adicionadas pela sua utilizao de funes existentes em livrarias adicionais e realizam todo o tipo de tarefas, deste a escrita no ecr ate ao seu processamento de strings, etc. Macros Utilizada no desenvolvimento de aplicaes, reduzindo assim a necessidade de escrita de funes distintas na realizao do mesmo processamento, em todos os tipos de dados. As Macros permitem aumentar a velocidade de execuo sem este ter que aumentar a complexidade de escrita do cdigo. Focus Permite ao programador a escrita do cdigo, como pretender, no qual o programa pode ser escrito numa s linha e dividido em inmeras linhas. Apenas tem de se preocupar com objectivo e a correco da aplicao que est a desenvolver, do modo a que no final o resultado seja o desejado, n necessrio formatar o cdigo a partir da coluna X e os dados a partir da coluna Y como acontece com outras linguagens. Evoluo A evoluo das linguagens, fez que tambm o C evolusse no sentido da Linguagens Orientadas por Objectos, dando origem a nova Linguagem C++ qual se mantm a sintaxe da Linguagem C, e permite um conjunto adicional de

caractersticas (Encapsulamento, Hereditariedade, Polimorfismo, Overloading, etc.). Actualmente a nova linguagem JAVA apresentou-se com base alargada de trabalho para programadores. Tambm esta linguagem se baseia na C e C++. Foram algumas razes indicadas para aprender a programar na Linguagem C. 16 17. Cdigo Fonte O cdigo fonte um conjunto de palavras ou smbolos escritos de uma forma ordenada contendo instrues em uma das linguagens de programao existentes de maneira lgica (in Wikipdia). No inicio um programador compe o programa de uma certa linguagem (C++ ou Visula Basic), o programador de sistemas tem toda a autonomia de poder alterar a forma como um programa funciona, ao adicionar recursos e a remover outros. O cdigo fonte permite que o programador consiga expor o programa de uma forma ntida aos humanos, para que consiga definir o programa executvel, necessrio que o cdigo fonte seja traduzido para o cdigo de mquina do processador que se ajuste arquitectura do sistema. Na figura de cima podemos verificar um exemplo de cdigo fonte Cdigo de Mquina Tambm conhecido por linguagem do computador ou sistema binrio, a linguagem mais baixa de programao e a nica que o processador e restante Hardware entendem. unicamente constituda por 0 e 1 que representam On e Off, ou seja, se existe ou no passagem de corrente, mas que permite escrever absolutamente tudo com apenas estes dois nmeros. Ex: Letra A corresponde a 1010 0001. 17 18. Programa Fonte o programa original, escrito numa qualquer linguagem de programao. Programa objecto o programa gerado aps o programa fonte ter sido compilado, por um compilador e escrito em linguagem mquina. Software de Traduo O Software de traduo constitudo por Compiladores e Interpretadores, que fazem a converso de uma linguagem de alto nvel (C, C++, Pascal, etc.) para uma linguagem de baixo nvel, linguagem mquina, ou seja, tem a sua funo a de traduzir uma linguagem abstracta para uma linguagem binria. Processam dados de entrada e geram dados de sada. Compilador um programa ou um conjunto de programas, que no momento de execuo de um programa, traduz cada instruo para uma linha de cdigo que interpretado pelo computador, que ser executada apenas aps a sua completa traduo. Os compiladores analisam o cdigo em 3 formas diferentes: - Sintctica ou hierrquica; Lxica ou linear; 18

19. - Semntica So o tipo de tradutores mais utilizados e alguns deles possuem pr-processamento, que modifica e optimiza o cdigo-fonte conforme as suas necessidades. Programa Compilador Compile Time Run input Cdi go output Time Vantagens - O cdigo compilado mais rapidamente executado; - Impossibilita ou pelo menos dificulta quebrar e visualizar o cdigo-fonte original; - Permite a optimizao do cdigo por parte do compilador; - Compila o cdigo somente aps verificar se tem algum erro. - Permite estrutura de dados mais complexas. Desvantagens - O cdigo necessita de passar por muitos nveis de compilao at ser utilizado; - O processo de correco ou alterao do cdigo exige que o mesmo seja novamente compilado; - A Impossibilidade de visualizar e modificar o cdigo-fonte. 19 20. Interpretador O interpretador apesar de assumir um papel semelhante ao compilador no gera cdigo- objecto. Ao contrrio do compilador, l, traduz e executa cada linha de cdigo sequencialmente. Permite a utilizao do programa medida que vai sendo traduzido, cada nova execuo do programa requer nova traduo e interpretao. Programa input Interpretador output Vantagens - O cdigo no precisa ser compilado para ser executado; - Correces e alteraes mais rpidas de executar; - Consomem menos memria; Desvantagens - A execuo do programa mais lenta; - necessrio ler sempre o cdigo original para ser executado, Estrutura de dados demasiadamente simples. 20 21. Concluso Com a realizao deste trabalho podemos concluir que a linguagem C uma linguagem de nvel mdio, por oferecer elementos de linguagem de alto nvel e recursos do tipo Assembler. A linguagem C acaba por ser a linguagem mais utilizada ao nvel da programao de sistemas (compiladores, sistemas operacionais), pois permite-nos a manipulao de bits, bytes e endereos com que o computador funciona. J o cdigo fonte tem como objectivo fazer que o programador descreva o programa de forma ntida as pessoas. Para conseguirmos executar um programa necessrio traduzir o cdigo fonte em cdigo mquina, visto esta ser a nica linguagem que os computadores compreendem. J em relao aos compiladores e aos interpretadores tem como funo operarem sobre o cdigo fonte do programa. 21 22. Fontes de consultas: Livro C/C++ de Renato Haddad Linguagem de Programao trabalha realizado por Nuno

Marques http://www.oficinadanet.com.br/artigo/1527/diferencas_entre_c ompiladores_e_interpret adores http://blog.uncovering.org/archives/2007/09/linguagens_de_p.h tml#ixzz0Y1JDv3c3 http://logbr.reflectivesurface.com/2003/03/26/evolucao-daslinguagens-de- programacao/ http://www.criarweb.com/artigos/685.php http://msdn.microsoft.com/pt-br/magazine/cc500572.aspx http://www.dcc.ufla.br/~monserrat/icc/Capitulo3.html 22

TEXTO 4

Linguagens de programao Document Transcript


1. As linguagens de Programao 2. Escola Secundria de Santo Andr Tema do trabalho As Linguagens de Programao Disciplina Programao Web Formador Guilherme Batista Elaborado por Paulo Cardoso e Ricardo Paulino Data: 03/12/2009 2 3. ndice 1. Introduo_____________________________________________________ _____4 2. Tipologia de linguagens_______________________________________________5 3. Tipos de linguagem___________________________________________________7 4. Evoluo das linguagens de programao________________________________9 5. Cdigo Fonte e Cdigo Mquina_______________________________________13 6. Compilador e Interpretador__________________________________________14 7. Linguagem C_______________________________________________________14 8. Concluso_____________________________________________________ ____22 9. Webgrafia_____________________________________________________ ____23 3 4. 1. Introduo As linguagens de programao surgiram para descrever mecanismos abstractos, tm como objectivo a

descrio e comunicao do utilizador ou programador para o computador. Com o passar dos anos as linguagens de programao vm sendo criadas a partir dos defeitos de outras linguagens ou por simples melhoria de desempenho e algumas designadas apenas para alguma tarefa especfica. Umas mais complexas que outras mas todas com o mesmo fim, solucionar algum problema. 4 5. 2. Tipologia de Linguagens As linguagens de programao podem ser representadas de vrias maneiras como demonstramos de seguida: 2.1 Por nveis Linguagens de Baixo Nvel Representadas pelo Assembler e o Cdigo Mquina e com a caracterstica de serem dependentes do computador onde trabalham porque os programas criados por estas linguagens no podem transitar para outro computador. Linguagens de Alto Nvel Representadas pelo FORTRAN, PASCAL e SIMULA, aqui as linguagens so independentes dos computadores podendo ser lidos em qualquer um onde tem um papel determinante o clculo numrico. Linguagens de Muito Alto Nvel Representadas pelo SQL, PROLOG, Haskell, o problema descrito em funo da relao com o objecto e com preciso nessa descrio o computador poder resolver o problema sem mais nenhuma interveno. 2.2 Por Geraes 1 Gerao Linguagem binria, linguagens mquina e Assembler. 2 Gerao COBOL, BASIC, RPG, FORTRAN IV/V, ALGOL 58/60/68/W, estas linguagens utilizam compiladores para traduzir ou compilar para linguagem binria. 5 6. 3 Gerao PL/1, PASCAL, FORTRAN 8X, APL, C, SIMULA, BLISS, linguagens para procedimentos. 4 Gerao ADA, linguagem que produz programas noutras linguagens (Gerador de programas); SQL, QBE, utilizadas para bases de dados. 5 Gerao LISP, PROLOG, linguagens para especificar problemas. 2.3 Por reas de Aplicao Cientificas ALGOL, BASIC, FORTRAN Comerciais COBOL Processamento de Listas LISP Gerais ALGOL 68, PASCAL, SIMULA 67 Inteligncia Artificial PROLOG Cincias Sociais SPSS 6 7. Planeamento de espaos PROLOG Programao de sistemas C 3. Tipos de Linguagens 3.1 Programao Imperativa Linguagem orientada por aces tendo como fundador o FORTRAN (FORmula TRANslator) criado pela IBM

para o IBM 704 por um grupo liderado por John Backus. Criada para processar ficheiros de registos (RECORDS) surgiu a linguagem COBOL. Nos anos 60, foi elaborada a ALGOL, linguagem que deu origem mais tarde a outras duas linguagens, o PASCAL e o C. Para simplificar e para ser utilizada por qualquer utilizador sem ter de ser programador criou-se o BASIC. PL/1 foi uma linguagem que tentou juntar os conceitos das linguagens FORTRAN, ALGOL e COBOL sendo a primeira linguagem generalista. Criado com origem no ALGOL, surgiu o PASCAL sendo denominada como a linguagem didctica dos anos 70 e 80. A linguagem C hoje em dia utilizada para vrias aplicaes, mas quando foi criada era reservada para programao de sistemas. O MODULA, outra linguagem derivada, esta derivada do PASCAL, criada para o suporte de mdulos (ADT) e programao de sistemas. 7 8. Imagem 1 Exemplo de programao Imperativa 3.2 Programao Funcional Linguagem com origem no LISP (LISt Processor), que serve para processamento simblico (Clculo diferencial e integral; Teoria de circuitos elctricos; Lgica; Resoluo de jogos). MACLISP, INTERLISP, SCHEME e ZETALISP so derivaes de LISP. 3.3 Programao baseada em lgica Tem como nica linguagem o PROLOG, concebido para processar linguagem natural (Francs), utilizado para processamento simblico como acontece com o LISP. No PROLOG para se chegar ao resultado introduz-se a informao base (factos) e as regras em vez de se descrever um algoritmo. 3.4 Programao Orientada por Objectos Neste tipo de programao o objecto afectado pela introduo de atributos mais as operaes necessrias. Teve origem no SIMULA (SIMULAtion) mas quase todas as linguagens que existem foram alteradas de modo a suportarem o paradigma OO (C++, ADA95, MODULA3, CLOS, PROLOG++, etc.). Algumas linguagens so conhecidas como OO puras por serem criadas para suportar este paradigma (SIMULA, SMALLTALK, EIFELL, JAVA). 8 9. Imagem 2 SIMULA, a origem da programao OO 4. Evoluo das Linguagens de Programao 1954 - Criao do FORTRAN por John Backus, sendo considerada a primeira linguagem de alto nvel. Imagem 3 John Backus 9 10. 1957 - Surge o FORTRAN I com aplicaes para computao cientfica. 1958 - Criado o ALGOL 58 com o objectivo de facilitar a descrio de algoritmos; - Desenvolvido o FORTRAN II que corrigiu diversos erros do FORTRAN I; -

Surgiu o FORTRAN III que nunca chegou a ter grande distribuio. 1959 - John McCarthy concebe o LISP que a primeira linguagem funcional e que s trabalhava com dois tipos de dados: tomos e listas (listas simples e listas aninhadas. 1960 - Ano da criao do FORTRAN IV, sendo considerado como norma nas aplicaes de clculo cientifico; Desenvolvimento do COBOL que veio permitir tratar grandes quantidades de informao comercial; - Numa reunio que durou 6 dias em Paris surgiu o ALGOL 60 melhorando o ALGOL 58 e foi linguagem padro dos algoritmos nos prximos vinte anos e sendo a primeira linguagem independente do computador. 1962 - Kenneth Iverson quem cria o APL. 1964 Surgimento do BASIC, feito por John Kemeny e Thomas Kurtz com a particularidade do acesso livre e da fcil aprendizagem por parte dos estudantes das reas no cientficas. 1965 - A IBM e a SHARE concebem o PL/I juntando o que havia de melhor nas linguagens existentes. 10 11. 1967 - Ano de criao do SIMULA 67 por Dahl e Nygaard que foi desenvolvido com base no ALGOL 60. 1968 - Surge o ALGOL 68, continuao do desenvolvimento do ALGOL 60. 1971 - Niklaus Wirth cria o PASCAL tendo como caracterstica a necessidade de as variveis serem declaradas no inicio dos programas, linguagem utilizada no ensino de programao estruturada. 1972 - Alan Kay quem concebe o SMALLTALK no XEROX Park, primeira linguagem a utilizar interface grfica; Na Universidade de Marselha cria-se o PROLOG, linguagem aplicada em gerncia de bases de dados; - Nos laboratrios Bell, Dennis Ritchie cria o C, que tinha como objectivo formar o sistema operativo UNIX, linguagem pequena, flexvel e capaz de criar cdigo eficiente. Imagem 4 Dennis Ritchie 11 12. 1975 - Criado o ADA, desenvolvida para o Departamento de Defesa dos EUA, criada em homenagem a Ada Augusta Byron (ajudante e patrocinadora de Charles Babbage), linguagem para programas complexos e grandes. 1978 - Ano de criao do FORTRAN 77 onde surge a instruo IF-THENELSE ao contrrio das verses anteriores onde se utilizava o GO TO; - E.F. Codd, da IBM, cria a linguagem SQL, linguagem direccionada para base de dados. 1985 - Criado o C++ por Bjarne Stroustrup com o intuito de melhorar a linguagem C, tendo como uma das vantagens poder programar em baixo e alto nvel, softwares como o Emule, Microsoft Office ou o Internet Explorer foram criados em linguagem C++; - Surge a linguagem EIFFEL, por Bertrand Meyer da ISE, linguagem que no case- sensitive, o que facilita a escrita. 1987 - Criado o

PERL por Larry Wall, linguagem que possibilita a sua utilizao em vrios sistemas operativos e usado na maioria para criar aplicaes Web. 1990 - Criao do FORTRAN 90 que ganhou recursos; - Em homenagem a Haskell Curry criada a linguagem HASKELL, linguagem essencialmente funcional. 1991 - Lanada uma linguagem de alto nvel, a PYTHON por Guido van Rossum e com uma sintaxe esclarecedora devido ao poder da biblioteca padro que possui; - A Sun Microsystems atravs de James Gosling criou a linguagem JAVA, linguagem orientada a objectos. 12 13. 1993 - Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes criaram a linguagem LUA, linguagem imperativa, de procedimentos e de abstraco de dados. 1995 - A Sun cria o JAVASCRIPT com base no C++ sendo um pouco mais simples; - Rasmus Lerdof cria a linguagem PHP, com a caracterstica de ter portabilidade; - Surge a linguagem RUBY, por Yukihiro Matsumoto sendo esta uma linguagem orientada a objectos; - Criada a linguagem DELPHI pela Borland Software Corporation, linguagem orientada a objectos e eventos. 2000 Criada a linguagem C# por Anders Hejlsberg e sua equipa e usada como parte da plataforma .NET. 5. Cdigo Fonte e Cdigo Mquina Cdigo Fonte o conjunto de palavras ou smbolos, que escritos de forma ordenada constroem instrues lgicas numa das linguagens de programao. O conjunto de palavras vai formar linhas de comando que devem estar dentro do padro da linguagem escolhida. Cdigo Mquina Cdigo representado por sequncias de bits, um conjunto de instrues que o processador de um computador consegue ler, executar. Um programa neste cdigo representado por variveis em sistema binrio, hexadecimal ou em alguns casos em sistema octal. 13 14. 6. Compilador e Interpretador Compilador So programas que atravs de um cdigo fonte escrito numa linguagem compilada, cria um programa com o mesmo significado mas escrito em cdigo mquina sendo perceptvel e possvel ao computador executar o programa. Interpretador So programas que aps lerem um cdigo fonte de uma linguagem de programao interpretada, convertem o cdigo fonte em cdigo executvel. O interpretador pode ler linha a linha e converter o programa conforme o vai executando ou pode ler todo o programa e converte-lo de uma s vez e execut-lo. 7. Linguagem C A linguagem C foi criada em 1972, uma linguagem padro, imperativa, procedimental ou estruturada de alto nvel que serviu para desenvolver o sistema operativo

UNIX que era escrito em ASSEMBLY, uma das caractersticas no ser necessrio conhecer o processador. Foi standarizada em 1983 pela ANSI (American National Standard Institute). Variveis Quando programamos em C devemos ter em conta que o nome das variveis no pode ser igual ao nome de uma funo nem igual ao nome de uma palavra reservada, e para a escrita de uma varivel no devemos ultrapassar os 32 caracteres nem colocar caracteres especiais. 14 15. Constantes A linguagem C permite que se utilize constantes hexadecimais e octais, no caso das hexadecimais as constantes tm de comear com 0x, nas octais tm de comear com 0. . Caractersticas - Tem rapidez capaz de conseguir desempenhos iguais aos do ASSEMBLY; - Tem uma grande popularidade em todo o mundo; - Pode utilizar-se em diversas mquinas e sistemas operativos; - uma linguagem que tem uma sintaxe simples com poucas palavras reservadas; - Permite juntar vrios mdulos para criar uma nica aplicao; - uma linguagem para compiladores, em que l o cdigo fonte e cria o cdigo objecto apenas uma vez; sensvel a letras maisculas (Case Sensitive); - As bibliotecas utilizadas tm de ser indicadas nas primeiras linhas do programa. Aplicaes escritas em C A linguagem serviu de base para vrias aplicaes tais como: - A reestruturao do sistema operativo UNIX; - As folhas de clculo 1, 2, 3 e o Excel (Inicial); - As bases de dados dBase III, IV e o Access; - Efeitos especiais em filmes (Star Trek, Star Wars). 15 16. Estrutura de um programa em C Directivas ao prprocessador - Includes - Macros Declaraes Globais - Funes - Variveis Definio das Funes Main () { /* begin */ } /* end */ Existem na linguagem C alguns caracteres especiais: n nova linha r enter t tabulao horizontal v tabulao vertical b retrocesso Aspas - Plica - Barra ? Ponto de interrogao a ou 7 bell %% - Carcter % 16 17. Operadores A linguagem C possui operadores binrios e unrios. Os operadores binrios utilizam 2 variveis e do um retorno de um terceiro valor sem alterar as variveis originais. possvel fazer operaes lgicas bit-a-bit em nmeros, sendo o nmero representado na sua forma binria e em cada bit dele so feitas as operaes. Operador de atribuio O = o sinal pelo qual designamos operador de atribuio. Operadores aritmticos Estes so os operadores aritmticos ( +, -, *, / ), aos quais juntamos este (%), que nos d o resto de uma diviso inteira. Operadores Relacionais e Lgicos Como

operadores relacionais temos, como o prprio nome indica operadores que relacionam, comparam. > (maior), < (menor), >= (maior ou igual), <= (menor ou igual, == (igual), != (diferente). Os operadores lgicos so o && (and), || (or) e o ! (not). Para incrementar Variveis ++x Aumenta o x antes de utilizar o seu valor x++ - Aumenta o x depois de utilizado o seu valor Decrementar So avaliados da esquerda para a direita, a ordem da avaliao pode ser alterada utilizando parnteses ++ -- mais alta + - mais baixa 17 18. Cast Serve para forar uma expresso. Sizeof Serve para assegurar a portabilidade do programa devolvendo o tamanho da varivel em bytes. Operador ternrio Serve para expressar if-else de maneira abreviada. 18 19. Ciclo de desenvolvimento de um programa Begin Edit program Compile program Compiler Yes errors? No Test program Run-time Yes errors? No End 19 20. Funes bsicas da biblioteca C - Printf () Esta funo de I/O que se baseia na introduo de cdigos de formatao como input e posteriormente exibidos no monitor ou impressos como Output. - Scanf () similar funo anterior ler os dados introduzidos atravs do teclado. - Getchar () Serve para guardar os caracteres de entrada at que o ENTER seja pressionado. - Putchar () Escreve no monitor o argumento do seu caractere na posio corrente. Estruturas de controlo de fluxo A linguagem C possuidora de vrios comandos de controlo de fluxo, e possvel, sem utilizar todos resolver todos os problemas. - if comando de condio. - if-else-if serve para testar uma varivel as vezes necessrias at encontrar algo que coincida. - switch para testar uma varivel repetidamente contra variveis inteiras ou caracteres. - loop for serve para controlar o loop. - while (do while) permite a execuo repetida do cdigo fonte de acordo com uma condio. - break para terminar o comando em execuo. - continue serve para saltar partes do programa. 20 21. Matrizes - matriz unidimensional o ndice de uma matriz 0, se utilizarmos uma matriz de inteiros de 10 elementos a variao vai de 0 a 9. - matriz multidimensional funciona como a dimensional mas com mais ndices. - matrizes estticas os dados de tipo simples so inicializados mas s como variveis globais. - limite das matrizes so os programas que testam os limites das matrizes. Manipulao de

strings Uma string uma matriz tipo char que acaba com O. A string deve ter uma posio a mais do que os caracteres desejados. Funo Gets () Utilizada para ler uma string pelo dispositivo padro at se carregar no ENTER. Esta funo no testa os limites da matriz em que chamada. Funo Puts () Funo escrita no dispositivo de sada, coloca um N no fim. Funo Strcpy () Esta funo copia o contedo de uma string. Funo Strcat () Funo que junta 2 strings sem verificar o tamanho. Funo Strcmp () Funo de comparao entre 2 strings. 21 22. 8. Concluso Neste trabalho vimos como cada linguagem tem o seu tipo de aplicao, a sua maneira de comunicar com o computador varia conforme o desfecho pretendido. Utilizadas em vrios sectores desde o informtico ao comercial passando pelo lazer, as linguagens vo servindo de base para todo o tipo de comunicao com o computador e atravs dessa comunicao vamos subindo patamares na evoluo tecnolgica. 22 23. 9. Webgrafia Textos http://uainfor.com.sapo.pt/2616/cadapoio.pdf http://www.inf.unioeste.br/~adriana/LP/Aulas/Unidade02.pdf ftp://ftp.unicamp.br/pub/apoio/treinamentos/linguagens/c.pdf Imagens http://2.bp.blogspot.com/_gJAmIAqN0Y/SWj2Fe9KlmI/AAAAAAAAAHU/jQgs1nqVm3Y/s320/progImp. png http://prosjekt.ring.hibu.no/simula/images/simula.gif http://libai.math.ncu.edu.tw/bcc16/pool/image/Backus.gif http://www.cs.helsinki.fi/u/kerola/tkhist/k2000/alustukset/unix_ hist/ritchie.jpeg 23

You might also like