Вы находитесь на странице: 1из 4

FAQI Faculdade de Tecnologia de Gravata

Graduao Tecnolgica em Desenvolvimento de Sistemas

1. Histrico
As linguagens de programao modernas so o resultado de um processo evolutivo que teve incio ainda na dcada de 50 com o surgimento das primeiras linguagens de programao de alto nvel. Antes disto, as mquinas eram programadas por meio de linguagens de baixo nvel. Exemplos destas linguagens so Assembly e Linguagem de Mquina. As linguagens de alto nvel so mais ou menos independentes de mquina. A figura abaixo sumariza a histria desta evoluo que deu origem a diferentes paradigmas de linguagens. Linguagens modernas como Delphi e Java evoluram destas linguagens.

Breve comentrio sobre as linguagens acima: Fortran a precursora de todas as linguagens imperativas modernas. Linguagem oficial dos antigos mainframes da IBM. Ainda muito usada em supercomputadores, como o CRAY, por fsicos e engenheiros.

FAQI Faculdade de Tecnologia de Gravata


Graduao Tecnolgica em Desenvolvimento de Sistemas

Algol apresentou o primeiro esboo interessante de uma linguagem de programao moderna, incluindo conceitos como estruturas de blocos e procedimentos. No saiu dos limites da academia.

Cobol foi desenvolvida para o desenvolvimento de aplicaes comerciais. Foi desbancada pelo surgimento dos sistemas gerenciadores de bancos de dados. Ainda existem muitos sistemas desenvolvidos nesta linguagem em fase de manuteno.

Simula precursora das linguagens orientadas a objetos. Smalltalk certamente a nica linguagem orientada a objetos pura. Pascal a linguagem mais popular de todas as descendentes de Algol. Simples, sistemtica e com implementaes eficientes foi o carro-chefe da Borland por muitos anos. uma das linguagens mais recomendadas para ensino de programao. De Pascal surgiram muitas outras linguagens como Modula-2 e Delphi, que passou a incorporar orientao a objetos e definio/manipulao de dados (SQL). C ainda hoje uma das linguagens mais utilizadas, principalmente no ambiente Unix para o qual foi desenvolvida. Sua marca maior a eficincia, porm construes de baixo nvel tornam seus programas difceis de serem lidos e depurados. A partir de C, surgiram as linguagens C++ e Java, as quais incorporaram o paradigma de orientao a objetos, porm a segunda eliminou o uso explcito de apontadores e deu nfase a programao distribuda na Internet, fator primordial de seu sucesso. Em outra linha de desenvolvimento, inicialmente voltado para aplicaes de inteligncia artificial, sugiram as linguagens funcionais e lgicas. Lisp linguagem funcional foi a precursora. A linguagem Prolog largamente utilizada ainda hoje para o desenvolvimento de aplicaes cognitivas (novo nome para inteligncia artificial). As linguagens funcionais tm ML como representante de maior sucesso. Vale ressaltar tambm Haskell e Miranda uma linguagem funcional pura.

2. Caractersticas de uma Linguagem de Programao


Por que algumas linguagens de computador no so caracterizadas como linguagens de programao? Uma boa linguagem de programao deve combinar poder expressivo que classe de problemas pode ser abordada com simplicidade e eficincia. Linguagens de programao devem ser universais para que possam ser consideradas como tais. Toda linguagem na qual funes recursivas podem ser definidas so universais, ou seja, isto corresponde ao poder expressivo da mquina de Turing. Uma linguagem sem recurso ou iterao no pode ser universal. Linguagens devem permitir naturalmente a implementao de certos problemas, pelo menos em uma rea de aplicao especfica. Devem ser implementveis, ou seja, deve ser possvel executar todo programa bemformado (sintaticamente correto). Linguagens como lgica de primeiraordem e linguagem natural (portugus) no so implementveis. Por fim, a implementao de linguagens deve ser caracterizada por uma eficincia aceitvel.

FAQI Faculdade de Tecnologia de Gravata


Graduao Tecnolgica em Desenvolvimento de Sistemas

Um entendimento bsico de conceitos de linguagens indispensvel para facilitar a aprendizagem de novas linguagens e decidir que linguagem mais adequada para a soluo de um problema. As formas como os diversos conceitos de linguagens so agrupados juntamente com estilos de programao caracterizam o que chamamos de paradigmas de linguagens de programao. Atualmente as linguagens de programao modernas incorporam um ou mais paradigmas. Por exemplo, Java uma linguagem imperativa, orientada a objetos e distribuda. Pascal uma linguagem imperativa. ML uma linguagem dominantemente funcional, porm possui uma extenso imperativa. Um outro paradigma bastante dominante no momento a programao visual. Linguagens compiladas so aquelas que so projetadas tal que seu cdigo precisa ser totalmente traduzido para uma outra linguagem antes do programa ser executado. Como exemplo, C, Pascal e Java. Em linguagens interpretadas, cada instruo traduzida e executada. No existe uma compilao prvia e o sucesso da execuo depende do caminho a ser seguido. Como exemplo, ML, Smalltalk e linguagens de Script como JavaScript.

3. Sintaxe e Semntica
importante conhecer os limites entre estes dois conceitos e sua importncia: Sintaxe o formato dos programas linguagem usada para construir programas. Semntica significado dos programas como eles se comportam quando executados em um computador. A sintaxe influencia a forma como programas so escritos, enquanto que a semntica dita como os programas devem ser entendidos por outros programadores e devem ser executados em um computador. A semntica a parte mais importante e que realmente caracteriza uma linguagem. Por exemplo, uma dada construo pode ser apresentada da mesma forma em diferentes linguagens de programao, porm com semnticas diferentes, ou vice-versa. No final das contas, voc s vai saber us-la adequadamente se conhecer bem o seu significado. Para corrigir sintaxe, temos os compiladores. Porm desentendimentos semnticos podem nos levar a produzir o programa errado ou com comportamentos indesejados e imprevisveis. Veja o exemplo abaixo. If (b && c) { x := 0; } else { x:= 1; } Este if possui o comportamento padro: se a condio for verdadeira, x:=0, caso contrrio, x:=1. Ser que isto suficiente para caracterizar tudo que pode acontecer ? E se ocorrer uma condio excepcional quando b ou c for avaliado? Enfim, a semntica de uma linguagem uma parte bastante crtica e precisa ser definida de uma maneira precisa, usando uma notao formal. Descries em linguagem natural so cheias de ambigidades, omisses e inconsistncia que podem levar a srios desentendimentos entre programadores e projetistas de compiladores.

FAQI Faculdade de Tecnologia de Gravata


Graduao Tecnolgica em Desenvolvimento de Sistemas

Abaixo segue a semntica formal da expresso (b && c) expressa em uma linguagem chamada de semntica operacional. b t0 c t1 b && c t, t = t0 e t1 Esta construo diz que se o resultado de b for t0 e o resultado de c for t1, ento o resultado de b && c deve ser a aplicao da operao lgica e a t0 e t1. Neste caso, a expresso (b && c) s ter um resultado se b e c forem avaliados com sucesso, ou seja, nenhuma condio excepcional ocorrer. Uma semntica alternativa segue abaixo. b b b b b b false && c false true c false && c false true c true && c true

As regras acima dizem que se b for avaliado para false, o resultado da expresso como um todo ser avaliado para false, independente do valor de c. Isto significa que c que potencialmente poderia gerar uma exceo no precisar ser executado. A grande maioria das linguagens de programao modernas, incluindo C e Java, ainda no possuem semntica formal. Isto muitas vezes um reflexo de problemas de projeto que inviabilizam a formalizao dos conceitos. As linguagens ML e Eiffel so exemplos de linguagens com semntica formal. Maiores exigncias nesta direo tendem a crescer no futuro, dado a crescente necessidade de sermos capazes de desenvolver programas realmente seguros e confiveis.

Вам также может понравиться