2. 2
Escola Secundária de Santo André
Tema do trabalho
As Linguagens de Programação
Disciplina
Programação Web
Formador
Guilherme Batista
Elaborado por
Paulo Cardoso e Ricardo Paulino
Data:
03/12/2009
3. 3
Índice
1. Introdução__________________________________________________________4
2. Tipologia de linguagens_______________________________________________5
3. Tipos de linguagem___________________________________________________7
4. Evolução das linguagens de programação________________________________9
5. Código Fonte e Código Máquina_______________________________________13
6. Compilador e Interpretador__________________________________________14
7. Linguagem C_______________________________________________________14
8. Conclusão_________________________________________________________22
9. Webgrafia_________________________________________________________23
4. 4
1. Introdução
As linguagens de programação surgiram para descrever mecanismos
abstractos, têm como objectivo a descrição e comunicação do utilizador ou
programador para o computador. Com o passar dos anos as linguagens de
programação vêm sendo criadas a partir dos defeitos de outras linguagens
ou por simples melhoria de desempenho e algumas designadas apenas para
alguma tarefa específica. Umas mais complexas que outras mas todas com
o mesmo fim, solucionar algum problema.
5. 5
2. Tipologia de Linguagens
As linguagens de programação podem ser representadas de várias maneiras como
demonstramos de seguida:
2.1 Por níveis
Linguagens de Baixo Nível
Representadas pelo Assembler e o Código Máquina e com a característica de
serem dependentes do computador onde trabalham porque os programas criados
por estas linguagens não podem transitar para outro computador.
Linguagens de Alto Nível
Representadas pelo FORTRAN, PASCAL e SIMULA, aqui as linguagens são
independentes dos computadores podendo ser lidos em qualquer um onde tem
um papel determinante o cálculo numérico.
Linguagens de Muito Alto Nível
Representadas pelo SQL, PROLOG, Haskell, o problema é descrito em função
da relação com o objecto e com precisão nessa descrição o computador poderá
resolver o problema sem mais nenhuma intervenção.
2.2 Por Gerações
1ª Geração
Linguagem binária, linguagens máquina e Assembler.
2ª Geração
COBOL, BASIC, RPG, FORTRAN IV/V, ALGOL 58/60/68/W, estas
linguagens utilizam compiladores para traduzir ou compilar para linguagem
binária.
6. 6
3ª Geração
PL/1, PASCAL, FORTRAN 8X, APL, C, SIMULA, BLISS, linguagens para
procedimentos.
4ª Geração
ADA, linguagem que produz programas noutras linguagens (Gerador de
programas);
SQL, QBE, utilizadas para bases de dados.
5ª Geração
LISP, PROLOG, linguagens para especificar problemas.
2.3 Por Áreas de Aplicação
Cientificas
ALGOL, BASIC, FORTRAN
Comerciais
COBOL
Processamento de Listas
LISP
Gerais
ALGOL 68, PASCAL, SIMULA 67
Inteligência Artificial
PROLOG
Ciências Sociais
SPSS
7. 7
Planeamento de espaços
PROLOG
Programação de sistemas
C
3. Tipos de Linguagens
3.1 Programação Imperativa
Linguagem orientada por acções tendo como fundador o FORTRAN (FORmula
TRANslator) criado pela IBM para o IBM 704 por um grupo liderado por John Backus.
Criada para processar ficheiros de registos (RECORDS) surgiu a linguagem COBOL.
Nos anos 60, foi elaborada a ALGOL, linguagem que deu origem mais tarde a outras
duas linguagens, o PASCAL e o C.
Para simplificar e para ser utilizada por qualquer utilizador sem ter de ser programador
criou-se o BASIC.
PL/1 foi uma linguagem que tentou juntar os conceitos das linguagens FORTRAN,
ALGOL e COBOL sendo a primeira linguagem generalista.
Criado com origem no ALGOL, surgiu o PASCAL sendo denominada como a
linguagem didáctica dos anos 70 e 80.
A linguagem C é hoje em dia utilizada para várias aplicações, mas quando foi criada era
reservada para programação de sistemas.
O MODULA, outra linguagem derivada, esta derivada do PASCAL, criada para o
suporte de módulos (ADT) e programação de sistemas.
8. 8
Imagem 1 – Exemplo de programação Imperativa
3.2 Programação Funcional
Linguagem com origem no LISP (LISt Processor), que serve para processamento
simbólico (Cálculo diferencial e integral; Teoria de circuitos eléctricos; Lógica;
Resolução de jogos). MACLISP, INTERLISP, SCHEME e ZETALISP são derivações
de LISP.
3.3 Programação baseada em lógica
Tem como única linguagem o PROLOG, concebido para processar linguagem natural
(Francês), é utilizado para processamento simbólico como acontece com o LISP. No
PROLOG para se chegar ao resultado introduz-se a informação base (factos) e as regras
em vez de se descrever um algoritmo.
3.4 Programação Orientada por Objectos
Neste tipo de programação o objecto é afectado pela introdução de atributos mais as
operações necessárias. Teve origem no SIMULA (SIMULAtion) mas quase todas as
linguagens que existem foram alteradas de modo a suportarem o paradigma OO (C++,
ADA95, MODULA3, CLOS, PROLOG++, etc.).
Algumas linguagens são conhecidas como OO puras por serem criadas para suportar
este paradigma (SIMULA, SMALLTALK, EIFELL, JAVA).
9. 9
Imagem 2 – SIMULA, a origem da programação OO
4. Evolução das Linguagens de Programação
1954
- Criação do FORTRAN por John Backus, sendo considerada a primeira linguagem de
alto nível.
Imagem 3 – John Backus
10. 10
1957
- Surge o FORTRAN I com aplicações para computação científica.
1958
- Criado o ALGOL 58 com o objectivo de facilitar a descrição de algoritmos;
- Desenvolvido o FORTRAN II que corrigiu diversos erros do FORTRAN I;
- Surgiu o FORTRAN III que nunca chegou a ter grande distribuição.
1959
- John McCarthy concebe o LISP que é a primeira linguagem funcional e que só
trabalhava com dois tipos de dados: átomos e listas (listas simples e listas aninhadas.
1960
- Ano da criação do FORTRAN IV, sendo considerado como norma nas aplicações de
cálculo cientifico;
- Desenvolvimento do COBOL que veio permitir tratar grandes quantidades de
informação comercial;
- Numa reunião que durou 6 dias em Paris surgiu o ALGOL 60 melhorando o ALGOL
58 e foi linguagem padrão dos algoritmos nos próximos vinte anos e sendo a primeira
linguagem independente do computador.
1962
- Kenneth Iverson é quem cria o APL.
1964
- Surgimento do BASIC, feito por John Kemeny e Thomas Kurtz com a particularidade
do acesso livre e da fácil aprendizagem por parte dos estudantes das áreas não
científicas.
1965
- A IBM e a SHARE concebem o PL/I juntando o que havia de melhor nas linguagens
existentes.
11. 11
1967
- Ano de criação do SIMULA 67 por Dahl e Nygaard que foi desenvolvido com base
no ALGOL 60.
1968
- Surge o ALGOL 68, continuação do desenvolvimento do ALGOL 60.
1971
- Niklaus Wirth cria o PASCAL tendo como característica a necessidade de as
variáveis serem declaradas no inicio dos programas, linguagem utilizada no ensino de
programação estruturada.
1972
- Alan Kay é quem concebe o SMALLTALK no XEROX Park, primeira linguagem a
utilizar interface gráfica;
- Na Universidade de Marselha cria-se o PROLOG, linguagem aplicada em gerência
de bases de dados;
- Nos laboratórios Bell, Dennis Ritchie cria o C, que tinha como objectivo formar o
sistema operativo UNIX, linguagem pequena, flexível e capaz de criar código eficiente.
Imagem 4 – Dennis Ritchie
12. 12
1975
- Criado o ADA, desenvolvida para o Departamento de Defesa dos EUA, criada em
homenagem a Ada Augusta Byron (ajudante e patrocinadora de Charles Babbage),
linguagem para programas complexos e grandes.
1978
- Ano de criação do FORTRAN 77 onde surge a instrução IF-THEN-ELSE ao
contrário das versões anteriores onde se utilizava o GO TO;
- E.F. Codd, da IBM, cria a linguagem SQL, linguagem direccionada para base de
dados.
1985
- Criado o C++ por Bjarne Stroustrup com o intuito de melhorar a linguagem C, tendo
como uma das vantagens poder programar em baixo e alto nível, softwares como o
Emule, Microsoft Office ou o Internet Explorer foram criados em linguagem C++;
- Surge a linguagem EIFFEL, por Bertrand Meyer da ISE, linguagem que não é case-
sensitive, o que facilita a escrita.
1987
- Criado o PERL por Larry Wall, linguagem que possibilita a sua utilização em vários
sistemas operativos e usado na maioria para criar aplicações Web.
1990
- Criação do FORTRAN 90 que ganhou recursos;
- Em homenagem a Haskell Curry é criada a linguagem HASKELL, linguagem
essencialmente funcional.
1991
- Lançada uma linguagem de alto nível, a PYTHON por Guido van Rossum e com
uma sintaxe esclarecedora devido ao poder da biblioteca padrão que possui;
- A Sun Microsystems através de James Gosling criou a linguagem JAVA, linguagem
orientada a objectos.
13. 13
1993
- Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes criaram a
linguagem LUA, linguagem imperativa, de procedimentos e de abstracção de dados.
1995
- A Sun cria o JAVASCRIPT com base no C++ sendo um pouco mais simples;
- Rasmus Lerdof cria a linguagem PHP, com a característica de ter portabilidade;
- Surge a linguagem RUBY, por Yukihiro Matsumoto sendo esta uma linguagem
orientada a objectos;
- Criada a linguagem DELPHI pela Borland Software Corporation, linguagem
orientada a objectos e eventos.
2000
- Criada a linguagem C# por Anders Hejlsberg e sua equipa e é usada como parte da
plataforma .NET.
5. Código Fonte e Código Máquina
Código Fonte
É o conjunto de palavras ou símbolos, que escritos de forma ordenada constroem
instruções lógicas numa das linguagens de programação. O conjunto de palavras vai
formar linhas de comando que devem estar dentro do padrão da linguagem escolhida.
Código Máquina
Código representado por sequências de bits, é um conjunto de instruções que o
processador de um computador consegue ler, executar. Um programa neste código é
representado por variáveis em sistema binário, hexadecimal ou em alguns casos em
sistema octal.
14. 14
6. Compilador e Interpretador
Compilador
São programas que através de um código fonte escrito numa linguagem compilada,
cria um programa com o mesmo significado mas escrito em código máquina sendo
perceptível e possível ao computador executar o programa.
Interpretador
São programas que após lerem um código fonte de uma linguagem de programação
interpretada, convertem o código fonte em código executável. O interpretador pode ler
linha a linha e converter o programa conforme o vai executando ou pode ler todo o
programa e converte-lo de uma só vez e executá-lo.
7. Linguagem C
A linguagem C foi criada em 1972, é uma linguagem padrão, imperativa,
procedimental ou estruturada de alto nível que serviu para desenvolver o sistema
operativo UNIX que era escrito em ASSEMBLY, uma das características é não ser
necessário conhecer o processador.
Foi standarizada em 1983 pela ANSI (American National Standard Institute).
Variáveis
Quando programamos em C devemos ter em conta que o nome das variáveis não pode
ser igual ao nome de uma função nem igual ao nome de uma palavra reservada, e para a
escrita de uma variável não devemos ultrapassar os 32 caracteres nem colocar caracteres
especiais.
15. 15
Constantes
A linguagem C permite que se utilize constantes hexadecimais e octais, no caso das
hexadecimais as constantes têm de começar com “0x”, nas octais têm de começar com
“0”.
.
Características
- Tem rapidez capaz de conseguir desempenhos iguais aos do ASSEMBLY;
- Tem uma grande popularidade em todo o mundo;
- Pode utilizar-se em diversas máquinas e sistemas operativos;
- É uma linguagem que tem uma sintaxe simples com poucas palavras reservadas;
- Permite juntar vários módulos para criar uma única aplicação;
- É uma linguagem para compiladores, em que lê o código fonte e cria o código objecto
apenas uma vez;
- É sensível a letras maiúsculas (Case Sensitive);
- As bibliotecas utilizadas têm de ser indicadas nas primeiras linhas do programa.
Aplicações escritas em C
A linguagem serviu de base para várias aplicações tais como:
- A reestruturação do sistema operativo UNIX;
- As folhas de cálculo 1, 2, 3 e o Excel (Inicial);
- As bases de dados dBase III, IV e o Access;
- Efeitos especiais em filmes (Star Trek, Star Wars).
16. 16
Estrutura de um programa em C
Directivas ao pré-processador
- Includes
- Macros
Declarações Globais
- Funções
- Variáveis
Definição das Funções
Main ()
{ /* begin */
} /* end */
Existem na linguagem C alguns caracteres especiais:
n – nova linha
r – „enter‟
t – tabulação horizontal
v – tabulação vertical
b – retrocesso
” – Aspas
’ - Plica
- Barra
? – Ponto de interrogação
a ou 7 – bell
%% - Carácter %
17. 17
Operadores
A linguagem C possui operadores binários e unários.
Os operadores binários utilizam 2 variáveis e dão um retorno de um terceiro valor sem
alterar as variáveis originais.
É possível fazer operações lógicas bit-a-bit em números, sendo o número representado
na sua forma binária e em cada bit dele são feitas as operações.
Operador de atribuição
O „=‟ é o sinal pelo qual designamos operador de atribuição.
Operadores aritméticos
Estes são os operadores aritméticos ( +, -, *, / ), aos quais juntamos este (%), que nos dá
o resto de uma divisão inteira.
Operadores Relacionais e Lógicos
Como operadores relacionais temos, como o próprio nome indica operadores que
relacionam, comparam. > (maior), < (menor), >= (maior ou igual), <= (menor ou igual,
== (igual), != (diferente).
Os operadores lógicos são o && (and), || (or) e o ! (not).
Para incrementar Variáveis
++x – Aumenta o x antes de utilizar o seu valor
x++ - Aumenta o x depois de utilizado o seu valor
Decrementar
São avaliados da esquerda para a direita, a ordem da avaliação pode ser alterada
utilizando parênteses
++ -- mais alta
+ - mais baixa
18. 18
Cast
Serve para forçar uma expressão.
Sizeof
Serve para assegurar a portabilidade do programa devolvendo o tamanho da variável em
bytes.
Operador ternário
Serve para expressar if-else de maneira abreviada.
19. 19
Ciclo de desenvolvimento de um programa
Yes
No
Yes
No
Begin
Edit program
Compile program
Compiler
errors?
Test program
Run-time
errors?
End
20. 20
Funções básicas da biblioteca C
- Printf () – Esta função é de I/O que se baseia na introdução de códigos de formatação
como input e posteriormente exibidos no monitor ou impressos como Output.
- Scanf () – É similar à função anterior ler os dados introduzidos através do teclado.
- Getchar () – Serve para guardar os caracteres de entrada até que o ENTER seja
pressionado.
- Putchar () – Escreve no monitor o argumento do seu caractere na posição corrente.
Estruturas de controlo de fluxo
A linguagem C é possuidora de vários comandos de controlo de fluxo, e é possível, sem
utilizar todos resolver todos os problemas.
- if – comando de condição.
- if-else-if – serve para testar uma variável as vezes necessárias até encontrar algo que
coincida.
- switch – para testar uma variável repetidamente contra variáveis inteiras ou caracteres.
- loop for – serve para controlar o loop.
- while (do while) – permite a execução repetida do código fonte de acordo com uma
condição.
- break – para terminar o comando em execução.
- continue – serve para saltar partes do programa.
21. 21
Matrizes
- matriz unidimensional – o índice de uma matriz é 0, se utilizarmos uma matriz de
inteiros de 10 elementos a variação vai de 0 a 9.
- matriz multidimensional – funciona como a dimensional mas com mais índices.
- matrizes estáticas – os dados de tipo simples são inicializados mas só como variáveis
globais.
- limite das matrizes – são os programas que testam os limites das matrizes.
Manipulação de strings
Uma string é uma matriz tipo char que acaba com „O‟. A string deve ter uma posição
a mais do que os caracteres desejados.
Função Gets ()
Utilizada para ler uma string pelo dispositivo padrão até se carregar no ENTER. Esta
função não testa os limites da matriz em que é chamada.
Função Puts ()
Função escrita no dispositivo de saída, coloca um „N‟ no fim.
Função Strcpy ()
Esta função copia o conteúdo de uma string.
Função Strcat ()
Função que junta 2 strings sem verificar o tamanho.
Função Strcmp ()
Função de comparação entre 2 strings.
22. 22
8. Conclusão
Neste trabalho vimos como cada linguagem tem o seu tipo de aplicação, a
sua maneira de comunicar com o computador varia conforme o desfecho
pretendido. Utilizadas em vários sectores desde o informático ao comercial
passando pelo lazer, as linguagens vão servindo de base para todo o tipo de
comunicação com o computador e através dessa comunicação vamos
subindo patamares na evolução tecnológica.