Linguagem de Programação
Linguagem de Programação é um sistema de notações para descrição de computação sob forma legível tanto para o ser humano quanto para as máquinas.
É um método padronizado para comunicar instruções para um computador, respeitando regras semânticas e sintáticas.
Um Paradigma de Programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa.
Paradigma Imperativo (C, C++, Pascal) Paradigma Funcional (ML, LISP, Haskell) Paradigma Orientado a Objeto (C++, Java) Paradigma Concorrente (ADA, Java)
Paradigma Orientado a Aspecto (AspectJ)
As linguagens imperativas são orientadas a acções, onde a computação é vista como uma sequência de instruções que manipulam valores de variáveis
O fundamento da Programação Imperativa é o conceito de Máquina de Turing, que nada mais é que uma abstração matemática que corresponde ao conjunto de funções computáveis
Sua criação foi influenciada pela arquitetura de computadores Von Neuman, onde programas e dados são armazenados na mesma memória.
MODELO COMPUTACIONAL VON NEUMANN
Os operando das expressões são passados da memória para a CPU e o resultado da expressão é passado de volta para uma célula da memória.
Linguagens imperativas são caracterizadas por três conceitos: variáveis, atribuições e sequências.
O estado de um programa imperativo é mantido em variáveis de programa que são associados com localizações de memória que correspondem a um endereço e um valor de armazenamento.
O valor da variável pode ser acessado directa e indirectamente, e pode ser alterado através de um comando de atribuição. O comando de atribuição introduz uma dependência de ordem no programa: O valor de uma variável
• As funções de linguagem de programação imperativas são descritas como algoritmos que especificam como processar um intervalo de valores, a partir de um valor de domínio, com uma série de passos prescritos.
• A repetição, ou laço, é usada extensivamente para processar os valores desejados. Laços são usados para varrer uma sequência de localizações de memória tal como vetores, ou para acumular um valor em uma
CARACTERÍSTICAS PRINCIPAIS
• As características principais das linguagens imperativas são: • As variáveis, que modelam as células de memória;
• Comandos de atribuição, que são baseados nas operações de transferência dos dados e instruções;
• A execução sequencial de instruções;
• E a forma iteractiva de repetição, que é o método mais eficiente desta arquitetura.
• O repetição (laços) é utilizada extensivamente para computar valores desejados. Laços são usados para varrer um vetor ou acumular valores numa variável.
• Por causa dessas características, as linguagens imperativas têm sido chamadas de orientadas a estado ou orientadas à atribuição.
VANTAGENS
• Eficiência (embute o modelo de Von Neumann)
• Mais fácil de traduzir para a linguagem de máquina • Paradigma dominante e bem estabelecido
• Modelagem “Natural” de aplicações do mundo real • Muito flexível
DESVANTAGENS
• Descrições demasiadamente operacionais • Focaliza o “como” e não o “quê”
EXEMPLOS DE LINGUAGENS DE PROGRAMAÇÃO BASEIADAS NO MODELO IMPERATIVO:
•Ada •Algol •Basic •C •PHP •Java •Cobol •Fortran •Pascal •Python •Lua •Mathematica
Fortran
A família de linguagens de programação conhecida globalmente como Fortran foi desenvolvida a partir da década de 1950 e continua a ser usada hoje em dia. O nome é um acrônimo da expressão "IBM Mathematical FORmula TRANslation System"
É principalmente usada em Ciência da computação e Análise numérica. Apesar de ter sido inicialmente uma linguagem de programação procedural, versões recentes de Fortran possuem características que permitem suportar programação orientada por objetos.
Valores e tipos:
interger, real, double precision, complex, logical;
• vector: dimension<nome>(dim1, dim2, dim3), real, interger • constantes lógicas: .true., .false.
Expressões:
• operadores: **, *, /, +, -, .ge., .gt., .le., .lt., .eq., .ne., .not.,
.and., .or.
Comandos e Sequências: if(<exp>)then ... end if if(<exp>) ... else if ( ) then ... else ... end if
• comandos I/O: open, close, read, write,print, rewind, endfile • comandos: goto, continue, pause, stop
Declarações:
declaração var.: <tipo> <id>
Procedimentos e Funções:
•funções: function <id> (<parâm.>) •proc.: procedure <id> (<parâm.>)
PASCAL
É uma linguagem de programação estruturada, que recebeu este nome em homenagem ao matemático e físico Blaise Pascal.
Foi criada em 1970 pelo suíço Niklaus Wirth, tendo em mente encorajar o uso de código estruturado.
Criada simultaneamente para ensinar programação estruturada e para ser utilizada na fábrica de software.
Valores e tipo:
boolen, interger, char, real;
estruturados: array, file, record, set
Expressões:
•boolean: and, or, not, xor
•interger: +, -, *, div, mod, =, >=, <>. abs, sqr, trunc, round •string: var a: string; a = 'abc';
Comandos e Sequências:
•comandos simples: write, writeln, read, clrscr, gotoxy, delay, readkey, upcase
if-then, if-then-else case <exp> of case <op1>: case <op2>: else end
for x := <inic> to|downto <fim> do while <cond> do
begin ... end;
Procedimentos e Funções:
•procedure <id> (<parâm.>);
•function <id> (<parâm.>): <tipo>;
Declarações:
ADA
Ada é uma Linguagem de programação estruturada, de tipagem estática, é uma linguagem imperativa, orientada a objetos e é uma linguagem de alto nível, originada de Pascal, Simula e outras linguagens. Foi originalmente produzida por uma equipe liderada por Jean Ichbiah da CII Honeywell Bull, contratados pelo Departamento de Defesa dos Estados Unidos durante a década de 70, com o intuito de substituir as centenas de linguagem de programação usadas pelo DoD.
Ada é uma aplicação com compiladores validados para uso confiável em missões criticas, tais como softwares de aviação. Normatizada internacionalmente pela ISO, sua versão mais atual é de 2005.
O nome Ada vem de Ada Lovelace, a mulher conhecida por ter escrito o primeiro algoritmo para ser processado por uma máquina na história da computação.
Expressões:
•operadores: =, /=, >, >=, +, -, abs, **, and, or, xor, not
Comandos e sequências:
if <cond> then case <exp> is
elsif <cont> then <alt. 1> else <alt. 2> end if;
end case;
when <lista escolha> => <com.> when <others> => <comandos>
while <cond.> loop <comandos>
end loop;
for <id> in <interv> loop <comandos>
Declarações:
var.: <id>: <tipo>;
Procedimentos e Funções:
procedure <id> (parâm.>) is
LINGUAGEM DE PROGRAMAÇÃO C
Linguagem de programação em C foi desenhado e desenvolvido por Dennis Ritchie em 1970 nos laboratórios AT & T’s Bell – USA.
Originalmente C foi escrito sobre Sistema Operativo UNIX o qual mas tarde foi desenhado usando a mesma linguagem de programação.
C tornou-se rapidamente popular por causa da confiabilidade,
A linguagem de programação C está entre:
1. As linguagens do alto nível ou Linguagens Orientadas a Problemas; 2. Linguagens do baixo nível ou Linguagens Orientadas a Maquina.
C é uma linguagem intermédiaria.
C é uma linguagem do propósito geral;
C é uma linguagem de Programação Estruturada C é uma linguagem Padronizada;
C é eficiente e tem tipos de dados limitados;
Possue métodos modernos de codificação de laços;
Desenhado para permitir ao utilizador adicionar funções na linguagem; Possue cerca de 145 funções de biblioteca;
C E OUTRAS LINGUAGENS DO MESMO PARADIGMA
COBOL Processamento de Registos
PASCAL Ensino das Técnicas de Programação
FROTRAN Cálculo Científico
LISP e PROLOG – Vocacionadas para áreas de Inteligéncia Artificial
C General purpose
EVOLUÇÃO DO C
C é uma linguagem particulamente estável;
Deu origem a uma linguagem OOP que é o C++
ETAPAS DE COMPLAÇÃO E EXECUÇÃO DE UM PROGRAMA EM C Editor do Texto Código fonte C Pre-Processor Ficheiros Cabeçalhos Código Fonte Expandido Compilador de C Caso sem erro Código objecto Linker Executaveel Carregador Bibliotecas não Sim
ESTRUTURA BÁSICA DE UM PROGRAMA EM C
Comentários
Directivas pré-processadores Declaração de variáveis globais Definição da função
{
Variáveis locais e declaração de funções instruções executáveis } Função1() { .... } Função2() { } ...
1. Comentários: Usado para descrever o
programa;
2. Pre-processor: Usados para incluir macros
ou definí-los, assim como cabeçalhos atraves da directiva #include.
3. Declaração de variáveis globais: Usado
para definir variaveis que tem vida durante toda a execução do programa;
4. Definição da função: Geralmente é o
método main que é definido. Que é o ponto de execução do programa.
5. Variáveis locais: Geralmente tem sido
declaradas as variaveis que so tem vida no meio de um módulo;
6. Executáveis: São instruções que são
convertidos a linguagem máquina;
7. Funções: Usada para implementação de
PRIMEIRO PROGRAMA EM C
Programa é um conjunto de instruções escritos passo a passo numa linguagem para realizar tarefa específica.
Cada Instrução em um programa em C é escrito como uma instrução separaada/isolada.
Estas instruções devem ser escritas na ordem em que pretendemos que elas sejam executadas.
REGRAS PARA ESCREVER UM PROGRAMA EM C
1. Uma vez que C é Case Sensitive todas as instruções são escritas em letras minúsculas;
2. Numa expressão duas palavras devem estar separadas por um espaço branco de modo a aumentar a confiabilidade;
Exemplo: Programa que calcula a soma e produto de dois números.
/* Programa que calcula a soma e produto de dois numeros */
#include <stdio.h> #include<conio.h> main()
{
int n1, n2, soma, prud;
printf(“introduza os dois numeros”); scanf(“%d%d”,&n1,&n2);
soma = n1 + n2; prud = n1 * n2;
printf(“a soma dos dois numeros é: %d”, soma); printf(“o produtodos dois numeros é: %d”, prud); }
Introduza os dois numeros: 3 7 A soma dos dois numeros: 10 O produtodos dois numeros e: 21
• Em C, um programa começa com a funçào main() • O código a executar é colocado entre { }
• Um Bloco é formado por qualquer conjunto de instruções entre { }. • Cada instrução deve ser seguida por ponto-e-vírgula (;).
• A disposição do código é arbitrária e depende das preferências de cada programados.
• C faz distinção entre maiúsculas e minúsculas – case Sensitive • As Strings em C são delimitadas pelo character aspas “.
• Para escrever uma mensagem na tela usa-se a função printf().
• A função printf não faz parte da linguagem C. Pertece à sua extensa biblioteca de funções.
• Para acesso a esta e outras funções de entrada e saida devemos incluir nos nossos programas o arquivo stdio.h através da directive ao pré-processador #include<stdio.h>
• As linhas começadas por #(#include, #define, etc) não são C, mas sim directivas ao pré-processador. Por isso não devem ser seguidas por ponto e vírgula.
• A representação de caracteres especiais ou de caracteres que, de outra forma, seriam difícies de representar faz-se através de um conjunto de dois ou mais caracteres, sendo em geral o primeiro character a barra invertida ( \ - Backslash)
• Os Comentários são escritos entre /* e */ e são simplesmente ignorados pelo compilador(a menos que se encontrem dentro de uma string).