Você está na página 1de 7

Linguagem de programao Origem: Wikipdia, a enciclopdia livre.

Uma 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. 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. 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. 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 engenheiros de software possam escrever programas mais organizados e com maior rapidez. Linguagens de programao tambm tornam os programas menos dependentes de computadores ou ambientes computacionais especficos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programao so traduzidos para o cdigo de mquina do computador no qual ser executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programao, era esta independncia da mquina onde seria executada.

Histria O primeiro trabalho de linguagem de programao foi criado para um computador que existia, criado por Ada Lovelace,melhor amiga de Charles Babbage. 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.

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. Em 1957 foi criada B-0, que daria origem a Flow-Matic (1958), antecessor imediato de COBOL, de 1959. Lisp e ALGOL foram criadas em 1958. Veja um mapa[1] da histria das linguagens de programao. [editar]Interpretao e compilao Uma linguagem de programao pode ser convertida, ou traduzida, em cdigo de mquina por compilao ou interpretao, que de traduo. juntas podem ser chamadas

Se o mtodo utilizado traduz todo o texto do programa (tambm chamado de cdigo), para s depois executar (ou rodar, como se diz no jargo da computao) o programa, ento diz-se que o programa foi compilado e que o mecanismo utilizado para a traduo um compilador (que por sua vez nada mais do que um programa). A verso compilada do programa tipicamente armazenada, de forma que o programa pode ser executado um nmero indefinido de vezes sem que seja necessria nova compilao, o que compensa o tempo gasto na compilao. Isso acontece com linguagens como Pascal e C. Se o texto do programa traduzido medida que vai sendo executado, como em JavaScript, Python ou Perl, num processo de traduo de trechos seguidos de sua execuo imediata, ento diz-se que o programa foi interpretado e que o mecanismo utilizado para a traduo um interpretador. Programas interpretados so geralmente mais lentos do que os compilados, mas so tambm geralmente mais flexveis, j que podem interagir com o ambiente mais facilmente. Embora haja essa distino entre linguagens interpretadas e compiladas, as coisas nem sempre so to simples. H linguagens compiladas para um cdigo de mquina de uma mquina virtual (sendo esta mquina virtual apenas mais um software, que emula a mquina virtual sendo executado em uma mquina real), como Java (compila para a plataforma Java) e C (compila para aplataforma CLI). E tambm h outras formas de interpretar em que os cdigos fontes, ao invs de serem interpretados linha-alinha, tm blocos "compilados" para a memria, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos mdulos so chamados vrias vezes, tcnica esta conhecida como JIT.

Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o cdigo java para o cdigo intermedirio (e portvel) da JVM. As JVMs originais interpretavam esse cdigo, de acordo com o cdigo de mquina do computador hospedeiro, porm atualmente elas compilam, segundo a tcnica JIT o cdigo JVM para cdigo hospedeiro. A traduo tipicamente feita em vrias fases, sendo as mais comuns a Anlise lxica, a Anlise sinttica ou Parsing, a Gerao de cdigo e a Otimizao. Em compiladores tambm comum aGerao de cdigo intermedirio. Veja tambm Compilador. Conceitos Programao linear Em matemtica, problemas de Programao Linear so problemas de otimizao nos quais a funo objetivo e as restries so todas lineares. Programao Linear uma importante rea da otimizao por vrias razes. Muitos problemas prticos em pesquisa operacional podem ser expressos como problemas de programao linear. Certos casos especiais de programao linear, tais como problemas de network flow e problemas de multicommodity flow so considerados importantes o suficiente para que se tenha gerado muita pesquisa em algoritmos especializados para suas solues. Vrios algoritmos para outros tipos de problemas de otimizao funcionam resolvendo problemas de PL como sub-problemas. Historicamente, idias da programao linear inspiraram muitos dos conceitos centrais de teoria da otimizao, tais como dualidade, decomposio, e a importncia da convexidade e suas generalizaes. Programao modular Programao modular um paradigma de programao no qual o desenvolvimento das rotinas de programao feito atravs de mdulos, que so interligados entre si atravs de uma interface comum. Foi apresentado originalmente pela Information & Systems Institute, Inc. no National Symposium on Modular Programming em 1968, com a liderana de Larry Constantine. Programao estruturada Programao estruturada uma forma de programao de computadores que preconiza que todos os programas possveis podem ser reduzidos a apenas trs estruturas: sequncia, deciso e repetio. Tendo, na prtica, sido transformada na Programao modular, a Programao estruturada orienta os programadores para a criao de estruturas simples em seus programas, usando as sub-rotinas e as funes. Foi a forma dominante na criao de software entre a programao linear e a programao orientada por objetos. Apesar de ter sido sucedida pela programao orientada por objetos, pode-se dizer que a programao estruturada ainda

marcantemente influente, uma vez que grande parte das pessoas ainda aprendem programao atravs dela. Porm, a orientao a objetos superou o uso das linguagens estruturadas no mercado.[2] Programao orientada a objetos Orientao a objetos, tambm conhecida como Programao Orientada a Objetos (POO) ou ainda em ingls Object-Oriented Programming (OOP) um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programao. De fato, o paradigma "orientao a objetos" tem bases conceituais e origem no campo de estudo da cognio, que influenciou a rea de inteligencia artificial e da lingstica no campo da abstrao de conceitos do mundo real. Na qualidade de mtodo de modelagem, tida como a melhor estratgia, e mais natural, para se eliminar o "gap semntico", dificuldade recorrente no processo de modelar o mundo real, no domnio do problema, em um conjunto de componentes de software que seja o mais fiel na sua representao deste domnio. Facilitaria a comunicao do profissional modelador e do usurio da rea alvo, na medida em que a correlao da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, smbolos, grafismo e estratgias) fosse a mais bvia, natural e exata possvel. A anlise e projeto orientados a objetos tem como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se d atravs do relacionamento e troca de mensagens entre estes objetos. Na programao orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos mtodos) e estados possveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. Classificao As linguagens de programao podem ser classificadas e sub-classificadas de vrias formas. Classificao da ACM A ACM mantm um sistema de classificao[3] com os seguintes sub-itens:

Linguagens aplicativas, ou de aplicao Linguagens concorrentes, distribudas e paralelas Linguagens de fluxo de dados Linguagens de projeto

Linguagens extensveis Linguagens de montagem e de macro Linguagens de microprogramao Linguagens no determinsticas Linguagens no procedurais Linguagens orientadas a objeto Linguagens de aplicao especializada Linguagens de altssimo nvel Ver artigo principal: Paradigma de programao Diferentes linguagens de programao podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:

Quanto ao paradigma

Linguagem funcional Linguagem natural Programao lgica Programao imperativa


Programao estruturada Linguagem orientada a objetos

Quanto a estrutura de tipos

Fracamente 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.

Quanto ao grau de abstrao

Linguagem 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 Assembly Linguagem 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

Quanto gerao

Primeira gerao, as linguagens de baixo nvel (Assembly) Segunda gerao, as primeiras linguagens (Fortran, ALGOL, ...) Terceira gerao, as procedurais e estruturadas (Pascal, C). Quarta gerao, linguagens que geram programas em outras linguagens (Java, C++), linguagens de consulta (SQL). Quinta gerao, linguagens lgicas (Prolog).

Lista de linguagens Existem vrias linguagens de programao; de acordo com o ndice Tiobe, as 20 mais populares so:[2] 1. Java 2. C 3. C++ 4. PHP 5. C 6. Objective-C 7. Visual Basic 8. Python 9. Perl 10. JavaScript Referncias 1. Mapa da histria das linguagens de programao (em ingls). Pgina visitada em 1 de dezembro de 2010. 2. a b Linguagens de programao populares (em ingls). tiobe.com. Pgina visitada em 27 de agosto de 2011. 3. Sistema de classificao da ACM (em ingls). acm.uiuc.edu. Pgina visitada em 1 de dezembro de 2010. Bibliografia 11. Lua 12. Ruby 13. Delphi / Object Pascal 14. Lisp 15. Transact-SQL 16. Ada 17. RPG 18. Pascal 19. F 20. Assembly

ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P.. Programming Language Structures. New York: Academic Press, 1978. 659 p. ISBN 0-12-528260-5 WEXELBLAT, Richard L.. History of Programming York: Academic Press, 1981. 758 p. ISBN 0-12-745040-8 Languages. New

Ver tambm

Você também pode gostar