Your SlideShare is downloading. ×
0
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Linguagens de Programação

13,629

Published on

Sub-área da Ciência da Computação.

Sub-área da Ciência da Computação.

Published in: Education, Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
13,629
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
344
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 23. 6000 5000 4000 3000 Anos de experiência 2000 1000 0 R$ 2 4 8 12 20 21+ Fonte: apinfo.com 23
  • 24. 24

×