SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Universidade Federal de Pelotas
Bacharelado em Ciência da Computação
Introdução à Ciência da Computação
Professor Gerson Cavalheiro (FILHO DA PUTA)
Introdução
Será abordado, através da
presente apresentação, uma visão
abrangente da sub-área da Ciência
da
Computação
denominada
Linguagens de Programação.
Além disso, será apresentado o
conjunto
de
conhecimentos
necessários para o desenvolvimento
dessas linguagens, um breve
histórico das linguagens, a relação
com as disciplinas do curso e por
fim, as oportunidades no mercado
de trabalho.

Linguagens de Programação

Histórico das linguagens

Conhecimentos necessários

O relacionamento com o curso

Mercado de trabalho

2
3
Linguagens de Programação
Linguagens de programação (LP)
são métodos padronizados para
expressar
instruções
para
um
computador. São um conjunto de
regras sintáticas e semânticas usadas
para definir um programa de
computador. Uma linguagem permite
que um programador especifique
sobre quais dados um computador vai
atuar, como estes dados serão
transmitidos ou armazenados e quais
ações devem ser tomadas sob várias
circunstâncias.

O principal objetivo das linguagens é
permitir que programadores tenham
uma maior produtividade, podendo
expressar suas intenções mais
facilmente do que quando comparado
com a linguagem que um computador
entende nativamente (código de
máquina). Portanto, linguagens de
programação são projetadas para
adotar uma sintaxe de nível mais
elevado, que pode ser mais facilmente
entendida
por
programadores
humanos. Enfim, elas são ferramentas
importantes para que programadores
possam escrever programas mais
organizados e com maior rapidez.

4
Sintaxe e semântica da LP
Sintaxe: conjunto de regras
formais para a composição de um
texto na linguagem (programa) a
partir do agrupamento de letras,
dígitos e/ou outros caracteres
(alfabeto da linguagem). A sintaxe é
um conjunto de regras formais para
a escrita do programa.

Semântica: diz respeito à
significação. A semântica é o
estudo
do
sentido
dos
significantes. Em programação a
semântica diz respeito ao
significado
do
programa
sintaticamente válido. O que pode
ocorrer é que um programa seja
sintaticamente válido sem, no
entanto, ter um significado lógico
coerente. É parte do domínio da
semântica verificar esta coerência
em termos de significado
linguístico e não em termos de
lógica de programa.
5
Confiabilidade

Propriedades
desejáveis de
uma LP

Ortogonalidade

Está relacionada
com os mecanismos
fornecidos pela LP
para incentivar a
construção de
programas
confiáveis

Diz respeito a capacidade da
LP permitir ao programador
combinar seus conceitos
básicos sem que se
produzam efeitos irregulares
nessa combinação. Assim
uma LP é tão mais ortogonal
quanto menor for o número
de exceções aos seus
padrões regulares

Conclusão
Eficiência
Legibilidade
Está
relacionada
com a
facilidade de
leitura dos
códigos

De acordo com as
demandas por
recursos de um tipo
de aplicação, certas
LPs são mais
recomendadas, e
outras não devem ser
usadas

Reusabilidade
Possibilita a reutilização do
mesmo código para diversas
aplicações. Quanto mais
reusável for um código,
maior será a produtividade
de programação, uma vez
que, na construção de novos
programas, bastará adaptar
códigos escritos
anteriormente sem a
necessidade de reconstruílos

Facilidade de
aprendizado
Redigibilidade

Relaciona-se
com a
facilidade em
escrever
programas

O programador deve ser
capaz de aprender a
linguagem com
facilidade. LPs com
muitas características e
múltiplas maneiras de
realizar a mesma
funcionalidade tendem a
ser mais difíceis de
aprender

Dessa forma, não
existe a melhor ou
a pior LP, isso não
depende somente
da linguagem e sim
para que tipo de
projeto será
aplicado

Portabilidade
Modificabilidade
Refere-se às facilidades
oferecidas pela LP para
possibilitar ao
programador alterar o
programa em função de
novos requisitos, sem
que tais modificações
impliquem mudanças
em outras partes do
programa

É altamente desejável que
programas escritos em uma
LP se comportem da
mesma maneira
independentes da
ferramenta utilizada para
traduzi-los para a
linguagem de máquina ou
da arquitetura
computacional (hardware
ou sistema operacional)
sobre a qual estão sendo
executados.

6
7
Programação estruturada
• Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser
reduzidos a apenas três estruturas: sequência, decisão e interação.

Programação orientada à objetos
• A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de
software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.

Programação natural
• É usado para distinguir as línguas faladas por seres humanos e usadas como instrumento de comunicação daquelas que são
linguagens formais construídas.

Programação lógica
• Programação lógica é a programação que faz uso da lógica matemática.

8
Interpretação X Compilação
Nas linguagens interpretadas um
programa é executado instrução a
instrução, ou seja, cada comando é,
primeiro traduzido para a linguagem
de máquina, para somente em
seguida,
ser
executado.
Na
interpretação as ações resultantes
de comandos da linguagem de alto
nível são executadas diretamente,
seguindo os passos:

Nas
linguagens compiladas um
programa é executado somente quando
toda a tradução foi completada. A
compilação de um programa fonte (texto
escrito diretamente na linguagem de alto
ou médio nível) prevê que o mesmo seja
traduzido para a linguagem da máquina
correspondente antes da execução. Esta
tradução é geralmente é feita em diversas
etapas:
Etapas

Cria o

Extensão

[1ª etapa] depuração
sintática

Programa fonte

.C ou .CPP

[2ª etapa] geração
de código de
máquina relocável

Programa objeto

.OBJ

[3ª etapa] linkage liga códigos e funções
de biblioteca

Programa executável

.EXE

9
10
Histórico das LPs
Desde o aparecimento dos
primeiros computadores ficou
claro que seria necessário
encontrar
um
método
padronizado para melhor
expressar as instruções que
deveriam
ser
dadas
à
máquina. Um conjunto de
regras sintáticas e semânticas
que permitissem definir um
programa, passível de ser
interpretado pela máquina da
forma mais eficiente.

À
medida
que
caminhamos rumo ao
século XXI, o universo
programático
sofreu
diversas
metamorfoses,
onde muitas linguagens
desadequadas à nova
realidade computacional
deixaram
de
existir,
cedendo lugar e novas
formas de comunicação
neste
eterno
diálogo
homem/máquina.
11
Década de 1940
• Sistema de código ENIAC, Assembly, C-10 e Plankalkül.
1950 - 1960

Histórico

• FORTRAN, LISP, Basic, COBOL, etc.
1967 - 1978
• Pascal, C, Prolog, SQL, etc.
Década de 1980
• C++, Perl, Ada, etc.
Década de 1990
• Haskell, Python, Java, Ruby, Common Lisp, JavaScript,
PHP, C#, Delphi, Ruby, etc.
Década de 2000
• C#, VB.net, etc.
12
As linguagens mais utilizadas atualmente
Índice de popularidade das
linguagens de programação. É
baseado em estatística obtida nos
principais portais de informações
(Google, MSN, Yahoo!, YouTube, etc.).
Note que o índice não classifica as
melhores
linguagens
de
programação, e sim as mais
populares (utilizadas). Não é uma
coisa
absoluta,
mas
bem
representativa do mercado global de
programação.

As 10 mais populares
3%
4%
4%
4%

18%

24%

17%
9%

10%

7%
Java
C++
(Visual) Basic
C#
Perl

C
PHP
Python
JavaScript
Outras

Fonte: tiobe.com

13
14
15
No English? No job.

16
17
Algoritmos e
Programação

Compiladores
I e II

Programação I

Disciplinas
relacionadas com
linguagens de
programação na
UFPel

Análise de
Algoritmos

Estrutura de
Dados I e II

Programação
Orientada à
Objetos

Conceitos de
Linguagens de
Programação
18
Algoritmos e Programação
• Conceitos básicos. Tipos de instruções. Tipos de algoritmos.
Formas de representação de algoritmos. Técnicas de construção
de algoritmos. Modularidade. Sub-algoritmo. Recursividade.
Laboratório de programação seqüencial: tipos de dados, estrutura
de um programa, declarações, comandos, subprogramas, entrada
e saída.

Programação I
• Estudo completo de uma linguagem de programação sequencial:
estrutura de um programa, tipos, tipos estruturados e
ponteiros, declarações, comandos, subprogramas, entrada e
saída, algoritmos com matrizes, uso de arquivos. Técnicas e
ferramentas para desenvolvimento de programas.

Estrutura de Dados I e II
• Estruturas de dados e algoritmos são temas fundamentais da
Ciência da Computação, sendo utilizados nas mais diversas áreas
do conhecimento e com os mais diferentes propósitos de
aplicação. Sabe-se que algoritmos manipulam dados. Quando
estes dados estão organizados (dispostos) de forma
coerente, caracterizam uma forma, uma estrutura de dados.

Análise de Algoritmos
• Esta disciplina faz parte da mais vasta teoria da complexidade
computacional, que permite fazer estimativas quanto aos recursos
necessários para que um algoritmo resolva um determinado
problema computacional.

Conceitos de Linguagens de Programação
• Abstração de Dados. Manipulação de ponteiros. Estruturas
básicas: listas lineares e não lineares. Conceito de árvores, árvores
binárias, árvores balanceadas. Implementação de grafos. Alocação
dinâmica de memória. Compressão de dados. Pesquisa em tabelas.
Métodos de classificação (ordenação) de dados. Organização de
arquivos: armazenagem externa, arquivos seqüenciais, arquivos
texto, arquivos indexados. Pesquisa em árvore, árvores B. Hash
estático e dinâmico.

Programação Orientada à Objetos
• A Programação Orientada a Objetos é um paradigma de
análise, projeto e programação de sistemas de software baseado
na composição e interação entre diversas unidades de software
chamadas de objetos. A análise e projeto orientados a objetos têm
como meta identificar o melhor conjunto de objetos para
descrever um sistema de software. O funcionamento deste sistema
se dá através do relacionamento e troca de mensagens entre estes
objetos.

Compiladores I e II
• Para executar o código (normalmente textos numa linguagem com
uma gramática bem definida) existem programas que convertem
essa linguagem para a da máquina concreta. A esses programas
chamam-se compiladores.

19
20
21
22
6000

5000

4000

3000

Anos de experiência

2000

1000

0
R$

2

4

8

12

20

21+

Fonte: apinfo.com

23
24

Contenu connexe

Tendances

ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02thomasdacosta
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de ComputadoresSuzana Viana Mota
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 

Tendances (20)

ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Aula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e SaídaAula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e Saída
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadores
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 

Similaire à Linguagens de Programação

Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 
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
 
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
 
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
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
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
 
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
 
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoAlgoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoErick L. F.
 
Paradigms of programming languagens
Paradigms of programming languagensParadigms of programming languagens
Paradigms of programming languagensMarcelo Hama
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Luiz Arthur
 

Similaire à Linguagens de Programação (20)

Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
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
 
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
 
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)
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Programação 1
Programação 1Programação 1
Programação 1
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
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
 
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De ProgramaçãoAlgoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
Algoritmos e Logica de programação - #Aula 06 - Linguagens De Programação
 
Paradigms of programming languagens
Paradigms of programming languagensParadigms of programming languagens
Paradigms of programming languagens
 
LP002 - AULA 1.potx
LP002 - AULA 1.potxLP002 - AULA 1.potx
LP002 - AULA 1.potx
 
LP003 - AULA 2.potx
LP003 - AULA 2.potxLP003 - AULA 2.potx
LP003 - AULA 2.potx
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
 

Dernier

AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZA
AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZAAVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZA
AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZAEdioFnaf
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREIVONETETAVARESRAMOS
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxJMTCS
 
Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?MrciaRocha48
 
Mini livro sanfona - Diga não ao bullying
Mini livro sanfona - Diga não ao  bullyingMini livro sanfona - Diga não ao  bullying
Mini livro sanfona - Diga não ao bullyingMary Alvarenga
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
Linguagem verbal , não verbal e mista.pdf
Linguagem verbal , não verbal e mista.pdfLinguagem verbal , não verbal e mista.pdf
Linguagem verbal , não verbal e mista.pdfLaseVasconcelos1
 
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdf
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdfTIPOS DE DISCURSO - TUDO SALA DE AULA.pdf
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdfmarialuciadasilva17
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptAlineSilvaPotuk
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxHlioMachado1
 
Mini livro sanfona - Povos Indigenas Brasileiros
Mini livro sanfona  - Povos Indigenas BrasileirosMini livro sanfona  - Povos Indigenas Brasileiros
Mini livro sanfona - Povos Indigenas BrasileirosMary Alvarenga
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...Martin M Flynn
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxkarinasantiago54
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdfCarlosRodrigues832670
 
atividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãoatividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãodanielagracia9
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxAntonioVieira539017
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 

Dernier (20)

AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZA
AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZAAVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZA
AVALIAÇÃO INTEGRADA 1ª SÉRIE - EM - 1º BIMESTRE ITINERÁRIO CIÊNCIAS DAS NATUREZA
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
 
Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?Empreendedorismo: O que é ser empreendedor?
Empreendedorismo: O que é ser empreendedor?
 
Mini livro sanfona - Diga não ao bullying
Mini livro sanfona - Diga não ao  bullyingMini livro sanfona - Diga não ao  bullying
Mini livro sanfona - Diga não ao bullying
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
Linguagem verbal , não verbal e mista.pdf
Linguagem verbal , não verbal e mista.pdfLinguagem verbal , não verbal e mista.pdf
Linguagem verbal , não verbal e mista.pdf
 
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdf
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdfTIPOS DE DISCURSO - TUDO SALA DE AULA.pdf
TIPOS DE DISCURSO - TUDO SALA DE AULA.pdf
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptx
 
Mini livro sanfona - Povos Indigenas Brasileiros
Mini livro sanfona  - Povos Indigenas BrasileirosMini livro sanfona  - Povos Indigenas Brasileiros
Mini livro sanfona - Povos Indigenas Brasileiros
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptxFree-Netflix-PowerPoint-Template-pptheme-1.pptx
Free-Netflix-PowerPoint-Template-pptheme-1.pptx
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
 
atividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãoatividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetização
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 

Linguagens de Programação

  • 1. Universidade Federal de Pelotas Bacharelado em Ciência da Computação Introdução à Ciência da Computação Professor Gerson Cavalheiro (FILHO DA PUTA)
  • 2. Introdução Será abordado, através da presente apresentação, uma visão abrangente da sub-área da Ciência da Computação denominada Linguagens de Programação. Além disso, será apresentado o conjunto de conhecimentos necessários para o desenvolvimento dessas linguagens, um breve histórico das linguagens, a relação com as disciplinas do curso e por fim, as oportunidades no mercado de trabalho. Linguagens de Programação Histórico das linguagens Conhecimentos necessários O relacionamento com o curso Mercado de trabalho 2
  • 3. 3
  • 4. Linguagens de Programação Linguagens de programação (LP) são métodos padronizados para expressar instruções para um computador. São um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique sobre quais dados um computador vai atuar, como estes dados serão transmitidos ou armazenados e quais ações devem ser tomadas sob várias circunstâncias. O principal objetivo das linguagens é permitir que programadores tenham uma maior produtividade, podendo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Portanto, linguagens de programação são projetadas para adotar uma sintaxe de nível mais elevado, que pode ser mais facilmente entendida por programadores humanos. Enfim, elas são ferramentas importantes para que programadores possam escrever programas mais organizados e com maior rapidez. 4
  • 5. Sintaxe e semântica da LP Sintaxe: conjunto de regras formais para a composição de um texto na linguagem (programa) a partir do agrupamento de letras, dígitos e/ou outros caracteres (alfabeto da linguagem). A sintaxe é um conjunto de regras formais para a escrita do programa. Semântica: diz respeito à significação. A semântica é o estudo do sentido dos significantes. Em programação a semântica diz respeito ao significado do programa sintaticamente válido. O que pode ocorrer é que um programa seja sintaticamente válido sem, no entanto, ter um significado lógico coerente. É parte do domínio da semântica verificar esta coerência em termos de significado linguístico e não em termos de lógica de programa. 5
  • 6. Confiabilidade Propriedades desejáveis de uma LP Ortogonalidade Está relacionada com os mecanismos fornecidos pela LP para incentivar a construção de programas confiáveis Diz respeito a capacidade da LP permitir ao programador combinar seus conceitos básicos sem que se produzam efeitos irregulares nessa combinação. Assim uma LP é tão mais ortogonal quanto menor for o número de exceções aos seus padrões regulares Conclusão Eficiência Legibilidade Está relacionada com a facilidade de leitura dos códigos De acordo com as demandas por recursos de um tipo de aplicação, certas LPs são mais recomendadas, e outras não devem ser usadas Reusabilidade Possibilita a reutilização do mesmo código para diversas aplicações. Quanto mais reusável for um código, maior será a produtividade de programação, uma vez que, na construção de novos programas, bastará adaptar códigos escritos anteriormente sem a necessidade de reconstruílos Facilidade de aprendizado Redigibilidade Relaciona-se com a facilidade em escrever programas O programador deve ser capaz de aprender a linguagem com facilidade. LPs com muitas características e múltiplas maneiras de realizar a mesma funcionalidade tendem a ser mais difíceis de aprender Dessa forma, não existe a melhor ou a pior LP, isso não depende somente da linguagem e sim para que tipo de projeto será aplicado Portabilidade Modificabilidade Refere-se às facilidades oferecidas pela LP para possibilitar ao programador alterar o programa em função de novos requisitos, sem que tais modificações impliquem mudanças em outras partes do programa É altamente desejável que programas escritos em uma LP se comportem da mesma maneira independentes da ferramenta utilizada para traduzi-los para a linguagem de máquina ou da arquitetura computacional (hardware ou sistema operacional) sobre a qual estão sendo executados. 6
  • 7. 7
  • 8. Programação estruturada • Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interação. Programação orientada à objetos • A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Programação natural • É usado para distinguir as línguas faladas por seres humanos e usadas como instrumento de comunicação daquelas que são linguagens formais construídas. Programação lógica • Programação lógica é a programação que faz uso da lógica matemática. 8
  • 9. Interpretação X Compilação Nas linguagens interpretadas um programa é executado instrução a instrução, ou seja, cada comando é, primeiro traduzido para a linguagem de máquina, para somente em seguida, ser executado. Na interpretação as ações resultantes de comandos da linguagem de alto nível são executadas diretamente, seguindo os passos: Nas linguagens compiladas um programa é executado somente quando toda a tradução foi completada. A compilação de um programa fonte (texto escrito diretamente na linguagem de alto ou médio nível) prevê que o mesmo seja traduzido para a linguagem da máquina correspondente antes da execução. Esta tradução é geralmente é feita em diversas etapas: Etapas Cria o Extensão [1ª etapa] depuração sintática Programa fonte .C ou .CPP [2ª etapa] geração de código de máquina relocável Programa objeto .OBJ [3ª etapa] linkage liga códigos e funções de biblioteca Programa executável .EXE 9
  • 10. 10
  • 11. Histórico das LPs Desde o aparecimento dos primeiros computadores ficou claro que seria necessário encontrar um método padronizado para melhor expressar as instruções que deveriam ser dadas à máquina. Um conjunto de regras sintáticas e semânticas que permitissem definir um programa, passível de ser interpretado pela máquina da forma mais eficiente. À medida que caminhamos rumo ao século XXI, o universo programático sofreu diversas metamorfoses, onde muitas linguagens desadequadas à nova realidade computacional deixaram de existir, cedendo lugar e novas formas de comunicação neste eterno diálogo homem/máquina. 11
  • 12. Década de 1940 • Sistema de código ENIAC, Assembly, C-10 e Plankalkül. 1950 - 1960 Histórico • FORTRAN, LISP, Basic, COBOL, etc. 1967 - 1978 • Pascal, C, Prolog, SQL, etc. Década de 1980 • C++, Perl, Ada, etc. Década de 1990 • Haskell, Python, Java, Ruby, Common Lisp, JavaScript, PHP, C#, Delphi, Ruby, etc. Década de 2000 • C#, VB.net, etc. 12
  • 13. As linguagens mais utilizadas atualmente Índice de popularidade das linguagens de programação. É baseado em estatística obtida nos principais portais de informações (Google, MSN, Yahoo!, YouTube, etc.). Note que o índice não classifica as melhores linguagens de programação, e sim as mais populares (utilizadas). Não é uma coisa absoluta, mas bem representativa do mercado global de programação. As 10 mais populares 3% 4% 4% 4% 18% 24% 17% 9% 10% 7% Java C++ (Visual) Basic C# Perl C PHP Python JavaScript Outras Fonte: tiobe.com 13
  • 14. 14
  • 15. 15
  • 16. No English? No job. 16
  • 17. 17
  • 18. Algoritmos e Programação Compiladores I e II Programação I Disciplinas relacionadas com linguagens de programação na UFPel Análise de Algoritmos Estrutura de Dados I e II Programação Orientada à Objetos Conceitos de Linguagens de Programação 18
  • 19. Algoritmos e Programação • Conceitos básicos. Tipos de instruções. Tipos de algoritmos. Formas de representação de algoritmos. Técnicas de construção de algoritmos. Modularidade. Sub-algoritmo. Recursividade. Laboratório de programação seqüencial: tipos de dados, estrutura de um programa, declarações, comandos, subprogramas, entrada e saída. Programação I • Estudo completo de uma linguagem de programação sequencial: estrutura de um programa, tipos, tipos estruturados e ponteiros, declarações, comandos, subprogramas, entrada e saída, algoritmos com matrizes, uso de arquivos. Técnicas e ferramentas para desenvolvimento de programas. Estrutura de Dados I e II • Estruturas de dados e algoritmos são temas fundamentais da Ciência da Computação, sendo utilizados nas mais diversas áreas do conhecimento e com os mais diferentes propósitos de aplicação. Sabe-se que algoritmos manipulam dados. Quando estes dados estão organizados (dispostos) de forma coerente, caracterizam uma forma, uma estrutura de dados. Análise de Algoritmos • Esta disciplina faz parte da mais vasta teoria da complexidade computacional, que permite fazer estimativas quanto aos recursos necessários para que um algoritmo resolva um determinado problema computacional. Conceitos de Linguagens de Programação • Abstração de Dados. Manipulação de ponteiros. Estruturas básicas: listas lineares e não lineares. Conceito de árvores, árvores binárias, árvores balanceadas. Implementação de grafos. Alocação dinâmica de memória. Compressão de dados. Pesquisa em tabelas. Métodos de classificação (ordenação) de dados. Organização de arquivos: armazenagem externa, arquivos seqüenciais, arquivos texto, arquivos indexados. Pesquisa em árvore, árvores B. Hash estático e dinâmico. Programação Orientada à Objetos • A Programação Orientada a Objetos é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Compiladores I e II • Para executar o código (normalmente textos numa linguagem com uma gramática bem definida) existem programas que convertem essa linguagem para a da máquina concreta. A esses programas chamam-se compiladores. 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 24. 24