Académique Documents
Professionnel Documents
Culture Documents
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
Conhecimentos necessrios
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
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
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 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
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
18%
24% 17%
9% 10%
14
15
No English? No job.
16
17
Algoritmos e Programao
Compiladores I e II
Programao I
Anlise de Algoritmos
Estrutura de Dados I e II
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.
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.
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