linguagem da computação

Download linguagem da computação

If you can't read please download the document

Upload: leandro-de-paula

Post on 05-Aug-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

S SobreLinguagens de ProgramaoBreve 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, queantes 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 dequais 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 ficato 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 programaoautomtica, 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 eHaskell, 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 outrasrealmente 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 02Linguagem da programao Presentation Transcript1. 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 computadorvai 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 eainda 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 afetamoutros 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 LgicoEntradaSadaPrograma31. 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 intelignciaartificial 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 foidas 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 3Linguagens de programao 03-12-09 Document Transcript1. 12. 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 esmbolos, 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 linguagensAssembly 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 esistemas 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 introduodo 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; . OUso 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 tiposbsicos 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 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 (maior), < (menor), >= (maior ou igual),