Introdução À Computação (Ic) : UD II - Estrutura de Um Programa em C

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 40

INTRODUÇÃO À COMPUTAÇÃO (IC)

UD II – Estrutura de um programa em C
SUMÁRIO
1. LINGUAGENS DE PROGRAMAÇÃO
a. Definição
b. Histórico
c. Linguagem de máquina X Linguagem de alto nível
d. Compiladores X Interpretadores

2. LINGUAGEM C
a. Histórico
b. Características
c. Compilação de um programa
d. Estrutura geral de um programa

3. FERRAMENTAS DE PROGRAMAÇÃO
LINGUAGENS DE
PROGRAMAÇÃO
LINGUAGENS DE PROGRAMAÇÃO | Definição
LINGUAGENS DE PROGRAMAÇÃO | Definição
● Uma linguagem de programação é um método padronizado para
expressar instruções para um computador.

● É composto por um conjunto de regras sintáticas e semânticas que


definem o programa a ser executado pelo computador.

● Este conjunto de regras formam um conjunto de palavras (tokens) e


constituem o código-fonte. Esse código-fonte é depois traduzido para
código de máquina, que é executado pelo processador.

● Linguagens de programação são projetadas para adotar uma sintaxe de


nível mais alto (comparado ao nível da máquina), o que permite um fácil
entendimento por programadores humanos.
LINGUAGENS DE PROGRAMAÇÃO | Histórico

● 1ª GERAÇÃO: linguagens de máquina


● 2ª GERAÇÃO: as primeiras linguagens (Fortran, COBOL, ALGOL,...)
● 3ª GERAÇÃO: linguagens procedurais e estruturadas (Pascal, C)
● 4ª GERAÇÃO: linguagens orientada a objeto (Java, C++), linguagens de
consulta (SQL), linguagens voltadas para web
● 5ª GERAÇÃO: linguagens voltadas para lógica, inteligência artificial
(Prolog)
LINGUAGENS DE PROGRAMAÇÃO | Máquina X Alto nível

NÍVEL DE ABSTRAÇÃO

● LINGUAGEM DE MÁQUINA: demanda o conhecimento da máquina


(conjunto de instruções e registradores ) por parte dos
programadores.
○ Ex: Assembly

● LINGUAGEM DE ALTO NÍVEL: Não requer o conhecimento da máquina.


Oferece alto grau de abstração para os programadores.
○ Ex: C
LINGUAGENS DE PROGRAMAÇÃO | Máquina X Alto nível

TRECHO DE UM CÓDIGO EM
ASSEMBLY
LINGUAGENS DE PROGRAMAÇÃO | Máquina X Alto nível
LINGUAGENS DE PROGRAMAÇÃO | Compiladores X Interpretadores

As linguagens de alto nível podem usar compiladores e/ou interpretadores.

LINGUAGENS COMPILADAS LINGUAGENS INTERPRETADAS

O código-fonte é convertido em O código-fonte é convertido para


linguagem de máquina para depois ser linguagem de máquina e executado ao
executado mesmo tempo

- Conversão realizada pelo compilador - Conversão e execução realizada


- Execução direta pelo processador paralelamente pelo interpretador

- Conversão mais eficiente - Conversão tende a ser menos eficiente


- Execução mais rápida - Execução mais lenta

Ex: C, C++, Fortran, Pascal, COBOL Ex: Python, PHP, JavaScript


LINGUAGENS DE PROGRAMAÇÃO | Compiladores X Interpretadores

LINGUAGEM COMPILADA

Código de
Código-fonte Compilador Saída
Máquina

LINGUAGEM INTERPRETADA

Código-fonte Interpretador Saída


FERRAMENTAS DE
PROGRAMAÇÃO
FERRAMENTAS DE PROGRAMAÇÃO

● É possível programar utilizando-se apenas um editor de texto e um


compilador via prompt de comando do sistema operacional. Por
exemplo, no sistema operacional Linux, podemos escrever o código
fonte de um programa em C com um editor de texto básico (gedit, vi,
etc) e executar o programa com o compilador gcc através do comando
gcc exemplo.c -std=c99 -o exemplo.exe

● Apesar desta possibilidade, costuma-se utilizar softwares de


programação para obter maior eficiência e suporte. Estes softwares
são conhecidos como IDEs (Integrated Development Environment).
FERRAMENTAS DE PROGRAMAÇÃO

PRINCIPAIS IDEs PARA A LINGUAGEM C

GEANY DEV-CPP CODE::BLOCKS


Multiplataforma Windows Multiplataforma
FERRAMENTAS DE PROGRAMAÇÃO

USANDO LINHA DE COMANDO

GCC – GNU Compiler Collection

1) Comando para compilar e gerar o executável:

gcc programa.c -std=c99 -o programa

2) Executar:

./programa *Material complementar


sobre GCC no Classroom.
LINGUAGEM C
LINGUAGEM C | Histórico

● Criada por Dennis Ritchie (1972), do Bell Telephone Laboratories, AT&T.

● Primeira utilização importante: reescrita do SO UNIX (originalmente


escrito em Assembly).

● Em 1980 já existiam várias versões de compiladores C oferecidas por


várias empresas, não mais sendo restritas apenas ao ambiente UNIX
(compatíveis com outros SO).

● O C é uma linguagem de propósito geral, sendo adequada à


programação estruturada.
LINGUAGEM C | Características

● Portabilidade: os compiladores ● Popular


seguem um padrão ANSI ● Geração de código
(American National Standards eficiente, rapidez, alto
Institute). desempenho.
● Modularidade: facilita a separação ● Compilação separada.
de projetos em módulos ● Confiabilidade
independentes. ● Regularidade
● Recursos de baixo nível: permite o ● Simplicidade
acesso à funcionalidades de ● Facilidade de uso
Assembly.
LINGUAGEM C | Compilação de um programa

https://medium.com/@mohamethseck/what-happ
ens-when-you-type-gcc-main-c-8fa341ede954
LINGUAGEM C | Compilação de um programa

VISÃO SIMPLIFICADA

http://www.dpi.inpe.br/~carlos/
Academicos/Cursos/Linguage
mC/Cap_1.html
LINGUAGEM C | Compilação de um programa

GERAÇÃO DO PROGRAMA

● A geração do programa executável a partir do código-fonte obedece


a uma seqüência de operações.
● Depois de escrever o código-fonte em um editor de textos ou em
uma IDE*, o programador aciona o compilador.
● Essa ação desencadeia uma sequência de etapas, cada qual
traduzindo a codificação do usuário para uma forma de linguagem
de nível inferior, que termina com o executável criado pelo linker (ou
link editor).

* IDE - Integrated Development Environment


LINGUAGEM C | Compilação de um programa

ETAPAS

1. ESCRITA DO CÓDIGO FONTE

● O código fonte é um arquivo de extensão .c


● Pode ser feita em qualquer editor de texto ou por meio de uma
IDE (Integrated Development Environment).
LINGUAGEM C | Compilação de um programa

ETAPAS
2. PRÉ-PROCESSAMENTO

● O pré-processador gera o código C estendido, transformando as


instruções destinadas a ele em código C.
● Faz o tratamento das instruções ou diretivas de pré-processamento
(linhas de código precedidas pelo caractere #).

inclusão no código
#include <stdio.h> ⇒
fonte do conteúdo
presente no
arquivo stdio.h
LINGUAGEM C | Compilação de um programa

ETAPAS
3. COMPILAÇÃO

● O compilador verifica se o código foi escrito corretamente em


termos de sintaxe das instruções.
● Caso seja detectado algum erro, o processo de compilação é
terminado.
● O compilador pode também detectar situações de sintaxe correta,
mas que levantam suspeitas. Nesse caso, continua a compilação e
emite um aviso (Warning) para cada situação suspeita.
● Caso não seja detectado nenhum erro, o compilador cria um arquivo
objeto, com o nome igual ao nome do programa e extensão .OBJ
(em DOS) ou .o (em Unix).
LINGUAGEM C | Compilação de um programa

ETAPAS

4. LINKER

● O arquivo executável é criado a partir do arquivo objeto, obtido


através do processo de compilação, e através das bibliotecas
(extensões .LIB em DOS e .a em Unix) que contêm código já
compilado das funções da própria linguagem C que são necessárias
ao executável final (extensões .EXE em DOS e sem extensão em
Unix).
LINGUAGEM C | Compilação de um programa

ETAPAS

5. EXECUÇÃO

● Rodar o arquivo executável.


LINGUAGEM C | Compilação de um programa

VISÃO SIMPLIFICADA
LINGUAGEM C | Estrutura geral de um programa

SINTAXE

● São regras detalhadas para cada construção válida na linguagem C.

● Estas regras estão relacionadas com os tipos, as declarações, as


funções e as expressões.
LINGUAGEM C | Estrutura geral de um programa

● Os tipos definem as propriedades dos dados manipulados em um


programa.

● As declarações expressam as partes do programa, podendo dar


significado a um identificador, alocar memória, definir conteúdo inicial,
definir funções.

● As funções especificam as ações que um programa executa quando


roda. São as entidades operacionais básicas dos programas em C, que
por sua vez são a união de uma ou mais funções executando cada qual
o seu trabalho.

● As expressões especificam a atribuição e alteração de valores, bem


como a chamada de funções de entrada e saída.
LINGUAGEM C | Estrutura geral de um programa

● Existem funções básicas que estão definidas na biblioteca C.


○ Exemplos:
■ printf() - escreve dados na tela;
■ scanf() - lê os dados a partir do teclado.

● O programador também pode definir novas funções em seus


programas, como rotinas para cálculos, impressão, etc.

● Todo programa C inicia sua execução chamando a função main(), sendo


obrigatória a sua declaração no programa principal.
LINGUAGEM C | Estrutura geral de um programa

● Comentários no programa são colocados entre /* e */ não sendo


considerados na compilação.

● Cada instrução encerra com ; (ponto e vírgula) que faz parte do


comando.

● A linguagem C é case sensitive, ou seja, faz diferenciação entre letras


maiúsculas e minúsculas:
○ Exemplo: Main(), MAIN() ou maIN() não são a mesma coisa que
main()
LINGUAGEM C | Estrutura geral de um programa

EXEMPLO

#include <stdio.h> /* Pacotes com funções de entrada e saída */


#include <math.h> /* Este pacote é desnecessário neste programa, mas
mostra que podem ser adicionados outros pacotes */

int main( ) {
printf("Olá, Mundo!\n");
return 0; // Retorna 0, pois main retorna um int
}
LINGUAGEM C | Estrutura geral de um programa

A estrutura genérica de um programa em C apresenta a seguinte forma,


podendo alguns dos elementos não existir:

● Comandos do pré-processador
● Definições de tipos
● Protótipos de funções - declaração dos tipos de retorno e dos tipos dos
parâmetros das funções
● Variáveis globais
● Funções
LINGUAGEM C | Estrutura geral de um programa

PRÉ-PROCESSADOR
● O pré-processador C é um programa que examina o programa fonte
escrito em C e executa certas modificações nele, baseado nas diretivas
de compilação (ou diretivas do pré-processador).
● As diretivas de compilação são comandos que não são compilados,
sendo dirigidos ao pré-processador, executado pelo compilador antes
da execução do processo de compilação propriamente dito.
● O pré-processador modifica o programa fonte, que ainda não estaria
pronto para ser entregue ao compilador.
● Todas as diretivas de compilação são iniciadas pelo caractere #.
● As diretivas podem ser colocadas em qualquer parte do programa, mas
não podem ser colocadas na mesma linha que outra diretiva ou
instrução.
LINGUAGEM C | Estrutura geral de um programa

PRINCIPAIS DIRETIVAS DE COMPILAÇÃO

#include
#define
#undef
#ifdef
#ifndef
#if
#else
#elif
#endif
LINGUAGEM C | Estrutura geral de um programa

BIBLIOTECAS EM C

A biblioteca padrão de C é um conjunto de rotinas padronizadas da


linguagem C que contém operações comuns como, por exemplo,
tratamentos de entrada/saída e cadeia de caracteres.

Padronização utilizada nesta disciplina: ANSI C - 1999 (C99)


LINGUAGEM C | Estrutura geral de um programa
LINGUAGEM C | Estrutura geral de um programa

PALAVRAS RESERVADAS
O padrão C99 definiu um total de 37 palavras para a linguagem C:
•auto •enum •return •unsigned
•break •extern •restrict •void
•case •float •short •volatile
•char •for •signed •while
•const •goto •sizeof •_Bool
•continue •if •static •_Complex
•default •inline •struct •_Imaginary
•do •int •switch
•double •long •typedef
•else •register •union
LINGUAGEM C | Estrutura geral de um programa

PALAVRAS RESERVADAS

● É importante lembrar que todas as palavras reservadas não podem ser


utilizadas para outro propósito além daquele para qual foram
designadas.

● Alguns compiladores incluem outras palavras reservadas.


○ Ex: asm, cdecl, far, fortran, huge, interrupt, near, pascal, typeof
“O que sabemos é uma gota;
o que ignoramos é um oceano.”
Isaac Newton

Você também pode gostar