SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
História das Linguagens de Programação,[object Object]
O que é linguagem  de programação,[object Object],Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas 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 serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.,[object Object]
O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador,[object Object]
Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiro de software possam escrever programas mais organizados e com maior rapidez,[object Object]
O primeiro trabalho de linguagem de programação 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, após gastar fortunas e um longo tempo, não conseguiu concretizar o projeto. A linguagem de programação ADA foi batizada em homenagem a esta primeira programadora.,[object Object]
Uma das primeiras linguagens de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.,[object Object],A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em 1954,[object Object]
Em 1957 foi criada B-O, que daria origem a Flow-Matic (1958), antecessor imediato de Cobol, de 1959. LIsp e Algol foram criadas em 1958. ,[object Object]
Diferença entre linguagem interpretada,compilada e scripts,[object Object]
Linguagem interpretada,[object Object],É uma linguagem de programação, onde o código fontr nessa linguagem é executado por um programa de computador chamado interpretador, que em seguida é executado pelo sistema operacional ou processador. Mesmo que um código em uma linguagem passe pelo processo de compilação, a linguagem pode ser considerada interpretada, se o programa resultante não for executado diretamente pelo sistema operacional ou processador. Um exemplo disso é o Bytecode, que é um tipo de linguagem interpretada, que passa pelo processo de compilação e, em seguida, é executado por uma máquina virtual, cuja sintaxe é similar a código de máquina e cada comando ocupa 1  byte. Existem também, as linguagens de script, que são linguagens interpretadas, executadas do interior de programas e/ou de outras linguagens de programação.,[object Object]
Linguagem compilada,[object Object],Éuma linguagem de programação, onde o código fonte nessa linguagem é executado diretamente pelo sistema operacional ou pelo processador, após ser traduzido, através de um processo chamado compilação, usando um programa de computador chamado compilador, para uma linguagem de baixo nível, como linguagem de montagem ou código de máquina.,[object Object]
Linguagem de script,[object Object],Também conhecido como linguagem de scripting, ou linguagem de extensão, são linguagens de programação executadas do interior de programas e/ou de outras linguagens de programação, não 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, são freqüentemente usadas como ferramentas de configuração e instalação em sistemas operacionais(Shell script), como por exemplo, em alguns sistemas operacionais da família Linux, que usam a linguagem bash. São também frequentemente usadas em jogos, como por exemplo, o jogo Impossible Creatures, que usa a linguagem Lua para controlar as ações dos personagens e o ambiente de batalha.,[object Object]
O que é um paradigma de programação?,[object Object],Modelo, padrão ou estilo de programação  suportado por linguagens que agrupam certas características comuns,[object Object],A classificação de linguagens em paradigmas é uma conseqüência de decisões de projeto que impactam radicalmente a forma na qual uma aplicação real é modelada do ponto de vista computacional,[object Object]
O Paradigma Imperativo,[object Object],Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado,[object Object],Paradigma também denominado de procedural, por incluir sub-rotinas ou procedimentos como mecanismo de estruturação,[object Object],Primeiro paradigma a surgir e ainda é o dominante,[object Object]
Modelo Computacional do Paradigma Imperativo,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Estado,[object Object]
Vantagens do modelo imperativo,[object Object],Eficiência (embute modelo de Von Neumann),[object Object],Modelagem “natural” de aplicações do mundo real,[object Object],Paradigma dominante e bem estabelecido,[object Object]
Desvantagens do paradigma imperativo,[object Object],Relacionamento indireto entre E/S resulta em:,[object Object],difícil legibilidade,[object Object],erros introduzidos durante manutenção,[object Object],descrições demasiadamente operacionais          focalizam o como e não o que,[object Object]
O Paradigma Orientado a Objetos,[object Object],Não é um paradigma no sentido estrito: é uma subclassificação do imperativo,[object Object],A diferença é mais de metodologia quanto à concepção e modelagem do sistema ,[object Object],A grosso modo, uma aplicação é estruturada em módulos (classes) que agrupam um estado (atributos) e operações (métodos) sobre este,[object Object],Classes podem ser estendidas e/ou usadas como tipos (cujos elementos são objetos),[object Object]
Modelo Computacional do Paradigma Orientado a Objetos,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Estado,[object Object],Estado,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Entrada,[object Object],Saída,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Programa,[object Object],Estado,[object Object],Estado,[object Object],Estado,[object Object],...,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object]
Vantagens do Paradigma  Orientado a objetos,[object Object],Todas as do estilo imperativo,[object Object],Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidade,[object Object],Aceitação comercial crescente,[object Object]
Problemas do Paradigma OO,[object Object],Semelhantes aos do paradigma imperativo, mas amenizadas pelas facilidades de estruturação,[object Object]
O Paradigma Orientado a Aspectos,[object Object],Não é um paradigma no sentido estrito,[object Object],A diferença é mais de metodologia quanto à concepção e modelagem do sistema ,[object Object],É uma nova forma de modularização:,[object Object],	Para “requisitos” que afetam várias partes de uma aplicação,[object Object]
O Paradigma Orientado a Aspectos,[object Object],A grosso modo, uma aplicação é estruturada em módulos (aspectos) que agrupam pontos de interceptação de código (pointcuts)  que afetam outros módulos (classes) ou outros aspectos, definindo novo comportamento (advice),[object Object],Aspectos podem ser estendidos e/ou usados como tipos,[object Object]
Modelo Computacional do Paradigma Orientado a Aspectos,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Estado,[object Object],Estado,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Entrada,[object Object],Saída,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object],Programa,[object Object],Estado,[object Object],Estado,[object Object],Estado,[object Object],Aspecto,[object Object],Aspecto,[object Object],...,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object],.,[object Object]
Vantagens do Paradigma      Orientado a Aspectos,[object Object],Todas as do paradigma OO,[object Object],Útil para modularizar conceitos que a Orientação a Objetos não consegue (crosscutting concerns),[object Object],Em especial, aqueles ligados a requisitos não funcionais,[object Object],Aumenta a extensibilidade e o reuso,[object Object]
Problemas do Paradigma Orientado a Aspectos,[object Object],Semelhantes aos do OO,[object Object],Ainda é preciso diminuir a relação entre classes e aspectos,[object Object],Problemas de conflito entre aspectos que afetam a mesma classe ,[object Object]
O Paradigma Funcional,[object Object],Programas são funções que descrevem uma relação explícita e precisa entre E/S,[object Object],Estilo declarativo: não há o conceito de estado nem comandos como atribuição ,[object Object],Conceitos sofisticados como polimorfismo, funções de alta ordem e avaliação sob demanda ,[object Object],Aplicação: prototipação em geral, IA, concorrência, ...,[object Object]
Modelo Computacional do Paradigma Funcional,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object]
Visão Crítica do Paradigma Funcional,[object Object],Vantagens,[object Object],[object Object]
- Prova de propriedades
- Transformação (exemplo: otimização)
- Concorrência explorada de forma naturalProblemas,[object Object],[object Object]
Implementações ineficientes
Mecanismos primitivos de E/S e formatação,[object Object]
Modelo Computacional do Paradigma Lógico,[object Object],Entrada,[object Object],Saída,[object Object],Programa,[object Object]
Visão Crítica do Paradigma Lógico,[object Object],Vantagens,[object Object],[object Object]
Permite concepção da aplicação em um alto nível de abstração (através de associações entre E/S)Problemas,[object Object],[object Object]
Linguagens usualmente não possuem tipos,  nem são de alta ordem,[object Object]
Gerações de Linguagem de Programação.,[object Object],Segunda Geração: Linguagem de montagem (Assembly),[object Object],[object Object],[object Object]
Gerações de Linguagem de Programação.,[object Object],Quarta Geração: Linguagem de alto nível (FOCUS, NATURAL, SQL...),[object Object],[object Object]
Diferença entre a 3GL e 4GL, é que as primeiras descrevem como fazer algo, enquanto a segunda descreve o que você quer que seja feito.,[object Object]
Em 1982 o governo japonês lançou o projeto FGCS , que visava construir uma maquina paralela incluindo programação lógica e técnicas de inteligência artificial que teve fim dez anos depois,por não despertar muito interesse na indústria.,[object Object]
Evolução centrada em níveis crescentes de abstração,[object Object],Linguagens de máquina,[object Object],Endereços físicos e operation code,[object Object],Linguagens Assembly,[object Object],Mnemônicos e labels simbólicos,[object Object],Linguagens de “alto nível”,[object Object],Variáveis e atribuição (versus acesso direto à memória),[object Object],Estruturas de dados (versus estruturas de armazenamento),[object Object]
Evolução centrada em níveis crescentes de abstração,[object Object],Estruturas de controle (versus jumps e gotos),[object Object],Estrutura de blocos como forma de encapsulamento,[object Object],Generalização e parametrização (abstração de tipos de valores),[object Object]

Contenu connexe

Tendances

Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagensPaulo Muniz
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadoresLCCIMETRO
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem cMarcia Santana
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro Lopes
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 

Tendances (20)

Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Software
SoftwareSoftware
Software
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagens
 
Programação 1
Programação 1Programação 1
Programação 1
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem c
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 

Similaire à Linguagem da programação

Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmosslashmelhor
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisHenry Raúl González Brito
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturasFábio Andrade
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardozedaesquina98
 
Programacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfProgramacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfMuseiwaLopes
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 

Similaire à Linguagem da programação (20)

Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Apostila c
Apostila cApostila c
Apostila c
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
 
Programacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfProgramacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdf
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Aula 01 algoritmo
Aula 01 algoritmoAula 01 algoritmo
Aula 01 algoritmo
 

Linguagem da programação