Vous êtes sur la page 1sur 25

Universidade Federal de Pelotas Bacharelado em Cincia da Computao Introduo Cincia da Computao Professor Gerson Cavalheiro

Introduo
Ser abordado, atravs da presente apresentao, uma viso abrangente da sub-rea da Cincia da Computao denominada Linguagens de Programao. Alm disso, ser apresentado o conjunto de conhecimentos necessrios para o desenvolvimento dessas linguagens, um breve histrico das linguagens, a relao com as disciplinas do curso e por fim, as oportunidades no mercado de trabalho.
Linguagens de Programao

Histrico das linguagens

Conhecimentos necessrios

O relacionamento com o curso

Mercado de trabalho

Linguagens de Programao
Linguagens de programao (LP) so mtodos padronizados para expressar instrues para um computador. So um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique sobre quais dados um computador vai atuar, como estes dados sero transmitidos ou armazenados e quais aes devem ser tomadas sob vrias circunstncias. O principal objetivo das linguagens permitir que programadores tenham uma maior produtividade, podendo expressar suas intenes mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (cdigo de mquina). Portanto, linguagens de programao so projetadas para adotar uma sintaxe de nvel mais elevado, que pode ser mais facilmente entendida por programadores humanos. Enfim, elas so ferramentas importantes para que programadores possam escrever programas mais organizados e com maior rapidez.

Sintaxe e semntica da LP
Sintaxe: conjunto de regras formais para a composio de um texto na linguagem (programa) a partir do agrupamento de letras, dgitos e/ou outros caracteres (alfabeto da linguagem). A sintaxe um conjunto de regras formais para a escrita do programa. Semntica: diz respeito significao. A semntica o estudo do sentido dos significantes. Em programao a semntica diz respeito ao significado do programa sintaticamente vlido. O que pode ocorrer que um programa seja sintaticamente vlido sem, no entanto, ter um significado lgico coerente. parte do domnio da semntica verificar esta coerncia em termos de significado lingustico e no em termos de lgica de programa.
5

Confiabilidade Est relacionada com os mecanismos fornecidos pela LP para incentivar a construo de programas confiveis

Ortogonalidade
Diz respeito a capacidade da LP permitir ao programador combinar seus conceitos bsicos sem que se produzam efeitos irregulares nessa combinao. Assim uma LP to mais ortogonal quanto menor for o nmero de excees aos seus padres regulares

Propriedades desejveis de uma LP

Concluso
Eficincia Legibilidade Est relacionada com a facilidade de leitura dos cdigos
De acordo com as demandas por recursos de um tipo de aplicao, certas LPs so mais recomendadas, e outras no devem ser usadas

Reusabilidade
Possibilita a reutilizao do mesmo cdigo para diversas aplicaes. Quanto mais reusvel for um cdigo, maior ser a produtividade de programao, uma vez que, na construo de novos programas, bastar adaptar cdigos escritos anteriormente sem a necessidade de reconstrulos

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

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 caractersticas e mltiplas maneiras de realizar a mesma funcionalidade tendem a ser mais difceis de aprender

Portabilidade
Modificabilidade Refere-se s facilidades oferecidas pela LP para possibilitar ao programador alterar o programa em funo de novos requisitos, sem que tais modificaes impliquem mudanas em outras partes do programa
altamente desejvel que programas escritos em uma LP se comportem da mesma maneira independentes da ferramenta utilizada para traduzi-los para a linguagem de mquina ou da arquitetura computacional (hardware ou sistema operacional) sobre a qual esto sendo executados.

Programao estruturada
Programao estruturada uma forma de programao de computadores que preconiza que todos os programas possveis podem ser reduzidos a apenas trs estruturas: sequncia, deciso e interao.

Programao orientada objetos


A anlise e projeto orientados a objetos tm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se d atravs do relacionamento e troca de mensagens entre estes objetos.

Programao natural
usado para distinguir as lnguas faladas por seres humanos e usadas como instrumento de comunicao daquelas que so linguagens formais construdas.

Programao lgica
Programao lgica a programao que faz uso da lgica matemtica.

Interpretao X Compilao
Nas linguagens interpretadas um programa executado instruo a instruo, ou seja, cada comando , primeiro traduzido para a linguagem de mquina, para somente em seguida, ser executado. Na interpretao as aes resultantes de comandos da linguagem de alto nvel so executadas diretamente, seguindo os passos:
Nas linguagens compiladas um programa executado somente quando toda a traduo foi completada. A compilao de um programa fonte (texto escrito diretamente na linguagem de alto ou mdio nvel) prev que o mesmo seja traduzido para a linguagem da mquina correspondente antes da execuo. Esta traduo geralmente feita em diversas etapas:
Etapas
[1 etapa] depurao sinttica [2 etapa] gerao de cdigo de mquina relocvel [3 etapa] linkage liga cdigos e funes de biblioteca

Cria o
Programa fonte Programa objeto

Extenso
.C ou .CPP .OBJ

Programa executvel

.EXE

10

Histrico das LPs


Desde o aparecimento dos primeiros computadores ficou claro que seria necessrio encontrar um mtodo padronizado para melhor expressar as instrues que deveriam ser dadas mquina. Um conjunto de regras sintticas e semnticas que permitissem definir um programa, passvel de ser interpretado pela mquina da forma mais eficiente. medida que caminhamos rumo ao sculo XXI, o universo programtico sofreu diversas metamorfoses, onde muitas linguagens desadequadas nova realidade computacional deixaram de existir, cedendo lugar e novas formas de comunicao neste eterno dilogo homem/mquina.
11

Dcada de 1940 Sistema de cdigo ENIAC, Assembly, C-10 e Plankalkl. 1950 - 1960 FORTRAN, LISP, Basic, COBOL, etc.

Histrico

1967 - 1978 Pascal, C, Prolog, SQL, etc. Dcada de 1980 C++, Perl, Ada, etc. Dcada de 1990 Haskell, Python, Java, Ruby, Common Lisp, JavaScript, PHP, C#, Delphi, Ruby, etc. Dcada de 2000 C#, VB.net, etc.
12

As linguagens mais utilizadas atualmente


ndice de popularidade das linguagens de programao. baseado em estatstica obtida nos principais portais de informaes (Google, MSN, Yahoo!, YouTube, etc.). Note que o ndice no classifica as melhores linguagens de programao, e sim as mais populares (utilizadas). No uma coisa absoluta, mas bem representativa do mercado global de programao. As 10 mais populares
3% 4% 4%
4% 7% Java C++ (Visual) Basic C# Perl
Fonte: tiobe.com

18%

24% 17%

9% 10%

C PHP Python JavaScript Outras


13

14

15

No English? No job.

16

17

Algoritmos e Programao

Compiladores I e II

Programao I

Disciplinas relacionadas com linguagens de programao na UFPel

Anlise de Algoritmos

Estrutura de Dados I e II

Programao Orientada Objetos

Conceitos de Linguagens de Programao


18

Algoritmos e Programao
Conceitos bsicos. Tipos de instrues. Tipos de algoritmos. Formas de representao de algoritmos. Tcnicas de construo de algoritmos. Modularidade. Sub-algoritmo. Recursividade. Laboratrio de programao seqencial: tipos de dados, estrutura de um programa, declaraes, comandos, subprogramas, entrada e sada.

Conceitos de Linguagens de Programao


Abstrao de Dados. Manipulao de ponteiros. Estruturas bsicas: listas lineares e no lineares. Conceito de rvores, rvores binrias, rvores balanceadas. Implementao de grafos. Alocao dinmica de memria. Compresso de dados. Pesquisa em tabelas. Mtodos de classificao (ordenao) de dados. Organizao de arquivos: armazenagem externa, arquivos seqenciais, arquivos texto, arquivos indexados. Pesquisa em rvore, rvores B. Hash esttico e dinmico.

Programao I
Estudo completo de uma linguagem de programao sequencial: estrutura de um programa, tipos, tipos estruturados e ponteiros, declaraes, comandos, subprogramas, entrada e sada, algoritmos com matrizes, uso de arquivos. Tcnicas e ferramentas para desenvolvimento de programas.

Programao Orientada Objetos


A Programao Orientada a Objetos um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. A anlise e projeto orientados a objetos tm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se d atravs do relacionamento e troca de mensagens entre estes objetos.

Estrutura de Dados I e II
Estruturas de dados e algoritmos so temas fundamentais da Cincia da Computao, sendo utilizados nas mais diversas reas do conhecimento e com os mais diferentes propsitos de aplicao. Sabe-se que algoritmos manipulam dados. Quando estes dados esto organizados (dispostos) de forma coerente, caracterizam uma forma, uma estrutura de dados.

Compiladores I e II
Para executar o cdigo (normalmente textos numa linguagem com uma gramtica bem definida) existem programas que convertem essa linguagem para a da mquina concreta. A esses programas chamam-se compiladores.

Anlise de Algoritmos
Esta disciplina faz parte da mais vasta teoria da complexidade computacional, que permite fazer estimativas quanto aos recursos necessrios para que um algoritmo resolva um determinado problema computacional.

19

20

21

22

6000

5000

4000

3000

Anos de experincia

2000

1000

0 R$

12

20

21+

Fonte: apinfo.com

23

24

Vous aimerez peut-être aussi