SlideShare uma empresa Scribd logo
1 de 24
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

Mais conteúdo relacionado

Mais procurados

Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
Guia rapido word 2016
Guia rapido word 2016Guia rapido word 2016
Guia rapido word 2016Marta Lima
 
Aulas iniciais de informática 1
Aulas iniciais de informática 1Aulas iniciais de informática 1
Aulas iniciais de informática 1diasferraciolli
 
Aula 01 informatica basica - introducao a informatica
Aula 01   informatica basica - introducao a informaticaAula 01   informatica basica - introducao a informatica
Aula 01 informatica basica - introducao a informaticaKassiana Marques
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Cibele Kanegae
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Módulo 1 - Noções Básicas de Hardware e Software
Módulo 1 - Noções Básicas de Hardware e SoftwareMódulo 1 - Noções Básicas de Hardware e Software
Módulo 1 - Noções Básicas de Hardware e SoftwarePaulo Guimarães
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsJoeldson Costa Damasceno
 
CapíTulo 1 IntroduçãO à InformáTica
CapíTulo 1   IntroduçãO à InformáTicaCapíTulo 1   IntroduçãO à InformáTica
CapíTulo 1 IntroduçãO à InformáTicaguest501765
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 

Mais procurados (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Redes de comunicação - TGPSI
Redes de comunicação - TGPSIRedes de comunicação - TGPSI
Redes de comunicação - TGPSI
 
Guia rapido word 2016
Guia rapido word 2016Guia rapido word 2016
Guia rapido word 2016
 
Aulas iniciais de informática 1
Aulas iniciais de informática 1Aulas iniciais de informática 1
Aulas iniciais de informática 1
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Aula 01 informatica basica - introducao a informatica
Aula 01   informatica basica - introducao a informaticaAula 01   informatica basica - introducao a informatica
Aula 01 informatica basica - introducao a informatica
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Aula 06 - Sistema Binário
Aula 06 - Sistema BinárioAula 06 - Sistema Binário
Aula 06 - Sistema Binário
 
Introdução a computação
Introdução a computaçãoIntrodução a computação
Introdução a computação
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Módulo 1 - Noções Básicas de Hardware e Software
Módulo 1 - Noções Básicas de Hardware e SoftwareMódulo 1 - Noções Básicas de Hardware e Software
Módulo 1 - Noções Básicas de Hardware e Software
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional Windows
 
CapíTulo 1 IntroduçãO à InformáTica
CapíTulo 1   IntroduçãO à InformáTicaCapíTulo 1   IntroduçãO à InformáTica
CapíTulo 1 IntroduçãO à InformáTica
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 

Semelhante a 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
 

Semelhante a 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)
 

Último

Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxDianaSheila2
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 

Último (20)

Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptx
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 

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