Você está na página 1de 48

Curso Núcleo Comum

Disciplina Linguagem de Programação

Aula 1

Professora Cassiana Fagundes da Silva


Conversa Inicial

Olá aluno! Seja bem-vindo à primeira aula da disciplina Linguagem da Programação!

Pronto para iniciar os estudos? Então acesse o material online assista à primeira parte
davideoaula, nela a professora Cassiana Fagundes da Silva apresentará um pouco do seu currículo,
assim como o que estudaremos nessa disciplina.
Contextualizando

Para armazenar um algoritmo na memória de um computador, é necessário que seja transcrito


para uma linguagem que ele possa identificar, seja direta ou indiretamente. Os computadores só
podem executar diretamente os algoritmos expressos em linguagem de programação.
Objetivos da Aula

Gerar no aluno o conhecimento necessário para que possa entender e classificar os seguintes
temas:

 Linguagem de programação

 Linguagem de programação C

Confira no material online o vídeo preparado pela professora Cassiana, ela mostrará o que
estudaremos na aula de hoje!
Linguagem de programação

A linguagem de programação é uma ferramenta que permite ao programador ou usuário de


computação escrever programas.

Várias são as linguagens de programação existentes no mercado (tais como C, Java, PHP, entre
outras), porém para cada linguagem faz-se necessário que o programador ou usuário saiba os
símbolos e sintaxes definidas por esta, no intuito de combiná-los para produzir um programa válido.

Você sabe como pode ser caracterizado um programa?


Programa pode ser definido como um conjunto de instruções que devem ser seguidas pelo
computador para realizar um determinado processo.
Conhecer os benefícios de se estudar a linguagem de programação faz reafirmar a essencial
importância do uso das ferramentas de programação, confira a seguir a descrição de alguns desses
benefícios:

 Maior capacidade de desenvolver soluções computacionais para problemas, ou seja, quanto maior a compreensão
sobre os conceitos de linguagens de programação maior a habilidade do programador em como pensar e resolver
problemas.

 Maior habilidade ao usar uma nova linguagem de programação. À medida que o programador vai agregando
conhecimento de outras linguagens, mais fácil do programador entender as modificações entre as linguagens, bem como a
utilizá-las de forma mais inteligente e otimizada.

 Maior capacidade para escolher linguagens de programação apropriadas, isto é, quanto maior o domínio sobre as
linguagens maior a capacidade de determinar qual linguagem melhor se adequa na resolução dos problemas.
 Maior habilidade para aprender novas linguagens de programação. Por exemplo, programadores que sabem os
conceitos de orientação a objetos possuem maior facilidade em aprender linguagem que utilizem destes paradigmas.
As linguagens de programação foram criadas para tornar o trabalho do programador mais
produtivo e um dos seus objetivos principais é tornar mais efetivo o processo de desenvolvimento de
software. Cabe ressaltar que, por meio destas linguagens de programação, é possível torná-los mais
produtivos em sua geração e manutenção e, também, garantir que toda produção de software seja
feita respeitando os padrões de qualidade.
Independentemente de como é seguido o processo de desenvolvimento de software, é necessário
que as linguagens de programação apresentem algumas propriedades desejáveis. Confira o
significado de cada uma:

Legibilidade - Esta propriedade trata da facilidade para se ler e entender um determinado programa.
Quanto mais fácil for entender e seguir suas instruções, mais fácil será de compreender o que está sendo
feito, bem como de descobrir possíveis erros de programação.

Exemplo: media = (nota1 + nota 2)/2

Pelo exemplo é possível entender que a instrução se trata de calcular a média com base na soma
de duas notas (1 e 2). Desta forma, pode-se dizer que este trecho do código apresenta uma boa
legibilidade.
Redigibilidade - Possibilita ao programador se dedicar aos aspectos mais relevantes da
implementação, ou seja, não perde tempo buscando compreender características que não são
necessárias para a resolução do problema.

Confiabilidade - São os mecanismos fornecidos pela própria linguagem de programação para


incentivar a construção de programas confiáveis. Por exemplo, as linguagens de programação que
requerem a declaração de dados, permitem verificar automaticamente erros de tipos durante a
compilação ou execução do programa.

Eficiência - Determinadas linguagens de programação são mais recomendadas que outras devido
às demandas por recursos de um tipo de aplicação. Desta forma, a propriedade eficiência é direcionada
normalmente ao uso de linguagens de programação que visam minimizar o tempo de execução e de
acesso aos dispositivos periféricos, bem como o consumo de espaço de memória.
Facilidade de aprendizado - Capacidade de o programador aprender a linguagem com
facilidade.

Linguagens de programação que apresentam muitas características e formas de realizar a mesma


funcionalidade tendem a ser mais complexas de aprender. Por exemplo, na linguagem de programação
C, pode-se executar o comando de incremento de várias formas: c = c+1; c+=1; c++.

Ortogonalidade - Possibilidade de o programador combinar seus conceitos básicos sem que se


produzam efeitos distorcidos nessa combinação. Linguagens de programação ortogonais são
interessantes porque os programadores podem prever, com segurança, o comportamento de uma
determinada combinação de conceitos (Varejão, 2004).
A falta de ortogonalidade dificulta o aprendizado da linguagem de programação e pode estimular a
ocorrência de erros de programação.
Reusabilidade - Pode-se dizer que esta é uma das propriedades mais desejáveis de uma
linguagem de programação. Pois, possibilita reutilizar o mesmo código pra diversas aplicações, ou seja,
quanto mais reutilizável for um código, maior será a sua produtividade de programação. Por exemplo,
este trecho de código pode ser utilizado por qualquer aplicação que deseje trocar os valores de duas
variáveis inteiras.

void troca (int *x, int *y)


{
int z = *x;
*x = *y;
*y = z;
}
Modificabilidade - Refere-se às facilidades das linguagens de programação em possibilitar ao
programador modificar o programa em função de novos requisitos (funcionalidades dos sistemas), sem
que tais modificações impliquem mudanças em outras partes do programa.

Portabilidade - Independente da linguagem em que o programa foi escrito este, deve se comportar da
mesma forma independente que a ferramenta utilizada para traduzi-lo para a linguagem e máquina ou
então para a arquitetura computacional (hardware ou sistema operacional) sobre o qual está sendo
executado.

Métodos de Implementação de Linguagens de Programação

Todo e qualquer programa, independente em qual idioma seja escrito, necessita ser traduzido
para uma linguagem de máquina para que possa ser executado. Para isso, faz-se necessário o uso de
um conjunto de programas que recebe o código-fonte do programa a ser traduzido e, posteriormente,
gere o código traduzido na linguagem de máquina. Dentre os métodos de implementação de tradução
do código-fonte em linguagem de máquina para execução estão a compilação, interpretação pura
e híbrido.

Confira um esquema dos métodos de implementação das linguagens de programação!


O método de implementação denominado de compilação efetua em seu processo a tradução
integral do programa fonte para o código de máquina. Assim, uma vez traduzido o programa em
linguagem de máquina este pode ser executado diretamente.

Como vantagens deste método destaca-se a otimização da eficiência na execução do programa,


pois esta é rápida devido a não necessitar traduzir durante a execução e, também, grande parte das
verificações de erros já pode ser efetuada durante a tradução. Outro benefício do método é o processo
de compilação que requer apenas o código executável para que o programa rode. No entanto, como
desvantagens tem-se a falta de portabilidade do código executável, ou seja, uma vez executado para
uma determinada arquitetura computacional este somente será executado nesta arquitetura. Por
exemplo, um programa em C compilado sobre o ambiente Windows não é executável no ambiente
Linux, e vice-versa.
Diferente do método de implementação compilado, o método chamado de interpretação pura
destina-se a simular um computador virtual capaz de entender as instruções da linguagem de
programação. Em outras palavras, o código fonte é traduzido para a linguagem de máquina quando
necessita ser executado e, posteriormente a essa execução, o código gerado é executado.

Como vantagens este método apresenta a facilidade em prototipação, isto é, permite-se executar
comandos ou partes do programa à medida que estes são construídos, verificando assim, se atuam
corretamente estas instruções ou comandos.

A execução mais lenta do programa é considerada uma desvantagem se comparada ao método


de compilação. Essa lentidão é decorrente da necessidade de o interpretador decodificar comandos
complexos da linguagem de programação, verificar erros do programa e gerar código em linguagem de
máquina durante a própria execução do programa.
O processo híbrido combina tanto a execução eficiente quanto a portabilidade de programas
pela aplicação combinada dos métodos de compilação e interpretação. A base para este processo é a
existência de um código intermediário, mais fácil de ser interpretado e, ao mesmo tempo, não
específico de uma plataforma computacional. Assim, este método de implementação híbrido é dividido
em duas partes, uma destinada à compilação para um código intermediário e a segunda para a
interpretação desse código.

Para Varejão (2004), embora a execução seja mais lenta que o código compilado, a interpretação
do código intermediário é mais rápida se comparado à interpretação pura do código fonte.
Paradigmas de Linguagens de Programação

Como paradigmas de linguagem de programação chamamos um conjunto de características que


serve para classificar um grupo de linguagens. Várias são as classificações dos paradigmas de
linguagem de programação, porém a mais conhecida é a que divide estes em imperativo, orientado a
objetos, funcional e lógico. Cabe ressaltar a não rigidez desta classificação, possibilitando as linguagens
de programação ser enquadradas em outros paradigmas simultaneamente.
Confira a seguir para conferir um esquema que demonstra duas classificações de paradigmas:
imperativo e declarativo.

O paradigma imperativo engloba os conceitos fundamentados na computação como um


processo que realiza mudanças de estados. Os programas incluídos neste paradigma especificam como
uma computação realizada por uma sequência de alterações no estado da memória do computador.

O objetivo dos programas neste paradigma é especificar como um processamento deve ser
realizado no computador, sendo os principais conceitos as variáveis, os valores e atribuições. O
paradigma imperativo pode ser subdivido em estruturado, orientado a objetos e concorrente.
No paradigma estruturado a programação se caracteriza pela existência de uma sequência
monolítica de comandos e pelo uso de desvios condicionais e incondicionais para determinar o fluxo de
controle da execução do programa. Desta forma, a programação estruturada organiza o fluxo de
controle de execução dos programas desestimulando o uso de comandos de desvios incondicionais e
incentivando a divisão dos programas em subprogramas e em blocos alinhados de comandos. Dentre
as linguagens de programação mais conhecidas neste paradigma estruturado encontram-se a
linguagem PASCAL e C.

Por outro lado, no paradigma orientado a objetos o principal objetivo é utilizar os conceitos
de objetos no desenvolvimento dos programas para torá-los mais rápidos e confiáveis. Enquanto que
as linguagens que adotam o paradigma estruturado focam na abstração de controle de execução dos
programas, as linguagens que adotam o paradigma orientado a objetos enfatizam a abstração dos
dados como elemento básico da programação.
Considera-se o paradigma orientado a objetos uma evolução do paradigma estruturado,
principalmente no que tange a especificação dos métodos. As linguagens SMALTALK, C++ e Java são
as mais conhecidas nesta classificação.

O paradigma concorrente ocorre quando vários processos executam simultaneamente e


concorrem por recursos. Este paradigma engloba linguagem como ADA e Java que oferecem
facilidades no desenvolvimento destes sistemas.

Em contraste aos paradigmas anteriores, no paradigma declarativo os programas são


especificações sobre o que é determinada tarefa. Ou seja, o programador não precisa se preocupar
sobre como o computador é implementado, muito menos saber qual melhor forma de realizar
determinada tarefa. Para o programador o que importa é descrever de forma abstrata como
determinada tarefa é resolvida. Este paradigma é subdivido em paradigma funcional e paradigma
lógico.

Por outro lado, o paradigma declarativo é totalmente baseado em linguagens lógicas que são
baseadas em subconjuntos do cálculo de predicados. Como predicado define-se a relação entre
constantes ou variáveis. E como característica principal deste paradigma lógico é que a execução dos
programas corresponde a um processo de dedução automática.

No paradigma funcional as linguagens de programação se caracterizam por operarem apenas


sobre funções, as quais recebem listas de valores e retornam um determinado valor. Esta programação
tem como finalidade definir uma função que retorne um valor como resposta do problema. As
linguagens que se destacam nesta classificação são LISP e ML.
A principal característica do paradigma lógico é que a execução dos programas corresponde a
um processo de dedução automática.

Para acompanhar as explicações da professora Cassiana sobre linguagem de programação, acesse o


material online!
Linguagem de programação C

A linguagem de programação C é definida como sendo numa linguagem de alto nível e com
uma finalidade genérica, isto é, pode ser utilizada para o desenvolvimento das mais diversas
aplicações, a saber, sistemas operacionais, editores de texto, software para gerenciamento de
cadastros, softwares para automação industrial entre outros.

A linguagem de programação C foi criada em 1972 nos Bell Telephone Laboratories por Dennis
Ritchie com o intuito de permitir a escrita de um sistema operacional, chamado Unix.
Desta forma, C é uma linguagem extremamente potente e flexível. Confira abaixo suas
características:

 Rapidez: consegue obter performances semelhantes às obtidas pela linguagem de baixo nível
Assembly, através de instruções de alto nível.

 Simples: sua sintaxe é simples, e o número de palavras reservadas, de tipos de dados básicos e de
operadores é pequeno, reduzindo assim a quantidade de tempo e esforço necessário à
aprendizagem da linguagem.
 Portável: existe um padrão (ANSI) que define as características de qualquer compilador. Assim, o
código escrito numa linguagem de máquina pode ser transportado para outra máquina e compilado
sem qualquer alteração.

 Popular: internacionalmente conhecida e utilizada. Extremamente bem documentada em livros,


etc.

 Modular: a linguagem C permite o desenvolvimento modular de aplicações, facilitando a separação


de projetos em módulos distintos e independentes.

 Alto nível: considerada uma linguagem de terceira geração, tal como PASCAL, COBOL< BASIC,
etc.
 Case sensitive: a linguagem C faz diferenciação entre maiúsculas e minúsculas, não sendo
portanto a mesma coisa escrever main(), Main() ou mAIN().
Conheça agora como é a estrutura básica de um programa em linguagem C:

Diretivas para o pré-processador

Declaração de variáveis globais


main( ) /* função main */
{
Declaração de variáveis locais;
Ccomandos / instruções;
}
As diretivas para o pré-processador são prontamente reconhecidas, vista que aparecem quase
sempre no início dos arquivos-fonte, com o prefixo # seguido pelo nome da diretiva e seus
argumentos, conforme exemplo:

#include <nome da diretiva>


Ao contrário dos comandos normais, não se usa ponto e vírgula ao final da declaração da diretiva. Dentre
todas as diretivas utilizadas na linguagem C. As diretivas para pré-processador mais conhecidas são as
mostradas no esquema abaixo:
Declarações de variáveis globais na linguagem de programação C precisam ser declaradas no
início do programa, antes de serem utilizadas para comandos e instruções.

Sempre ao se declarar variáveis faz-se necessário que estas respeitem as seguintes condições:

 O nome deve começar com uma letra ou sublinhado (_);


 Os caracteres que seguem devem ser letras, números ou sublinhado (_);
 O nome de uma variável não pode ser igual ao de uma palavra reservada, isto é, palavras utilizadas
na sintaxe da linguagem.
Como exemplos de nomes de variáveis válidas, podemos citar: nome, idade, num1, numero_1,
media, endereço, rg, etc. Já como declarações de variáveis inválidas cita-se os exemplos: 1nota,
@nome, media-final, %desconto, etc.

Você sabia que, nas declarações de variáveis, além do cuidado na escolha do nome destas, é
necessário que siga a sintaxe de programação?
Confira agora os tipos de dados básicos utilizados em linguagem C:

 int – número inteiro;


 float – números reais ou de ponto flutuante;
 char – caractere;
 double – número em ponto flutuante de precisão dupla;
 void – resultado não possui nenhum tipo definido.
Agora, veja os exemplos de declarações se variáveis e seus tipos de dados:

int idade;
int num1, num2, num3;
float valor;
char nome [10];

As variáveis aos serem declaradas juntamente com seus respectivos tipos de dados também
podem ser inicializadas, conforme sintaxe:

tipo de dado nome da variável = valor


A linguagem C, permite ainda que valores possam ser atribuídos a variáveis ao mesmo momento
em que está sendo declarada. Confira no exemplo a seguir:

int idade = 38;


int num1, num2, num3 = 10;
float media = 70;
float valor = 103.23;
char letra = ‘a’.
No programa desenvolvido em linguagem de programação C sempre será necessário uma função
main(), ou seja, a função principal do programa onde iniciará a sua execução.

Toda a função main é seguida de ( ) e de { abre e fecha }, confira:

 { : equivale ao inicio no programa estruturado


 } : equivale ao fim
Outro ponto importante na estrutura básica de um programa em C são os comentários. Eles são
utilizados para explicar como determinadas instruções e rotinas são executadas e, sempre, são
compreendidos como um conjunto de caracteres entre os sinais de /* e */, conforme exemplo que
segue:

/* este é um exemplo de linha de comentário na linguagem de programação C */


Será que você conseguiu assimilar todo o conteúdo e conceitos que envolvem a linguagem de
programação C? Para conferir as explicações sobre o tema preparadas pelo professora Cassiana, acesso
o material online.
Na Prática

Agora, vamos testar seu conhecimento sobre tudo o que estudamos até agora?

Resolva os exercícios a seguir!


Linguagem de programação define-se como:

a. ( ) Uma ferramenta que permite ao programador ou usuário de computação escrever


programas.

b. ( ) Maior capacidade de desenvolver soluções computacionais para problemas, ou seja, quanto


maior a compreensão sobre os conceitos de linguagens de programação maior a habilidade do
programador em como pensar e resolver problemas.

c. ( ) A possibilidade de reutilizar o mesmo código para diversas aplicações, ou seja, quanto mais
recusável for um código, maior será a sua produtividade de programação.

d. ( ) A possibilidade de o programador combinar seus conceitos básicos sem que se produzam


efeitos distorcidos nessa combinação.
Gabarito:

A alternativa a está correta!


Quando devem ser utilizados os comentários na estrutura de um programa em C?

a. ( ) Antes de qualquer instrução do programa.

b. ( ) Depois de todas as instruções.

c. ( ) Antes do main.

d. ( ) Sempre que o programador ache necessário ou conveniente.

Gabarito:

A alternativa D está correta!


Síntese

A partir de tudo o que estudamos hoje, podemos concluir que a linguagem de programação é de
suma importância para qualquer programador e é por meio dela que se torna possível aprender novas
linguagens e ter maior domínio na resolução de problemas.

Confira alguns tópicos que sintetizam a nossa aula de hoje:

 As linguagens de programação podem ser implementadas de três formas: compiladas,


interpretadas e híbridas.

 Os paradigmas de linguagens de programação são classificados como: imperativo e


declarativo.

 A linguagem de programação C é considerada de alto nível e totalmente compilada.


 Em C, um programa começa com a função main() e o código a executar sempre deve estar
entre { }.

 Cada instrução deve ser seguida de ponto e vírgula.

C faz distinção entre maiúsculas e minúsculas, por isso é definido como case sensitive.
Para finalizar, acesse o material online para conferir a síntese preparada pela professora Cassiana!

Até a próxima aula!


Referências Bibliográficas

DAMAS, Luis. Linguagem em C. 10ª ed. Trad. João Araujo Ribeiro, Orlando Bernardo Filho. Rio de
Janeiro: LTC, 2013.

VAREJÃO, Flávio Miguel. Linguagens de programação. Ed. Campus, 2004. Disponível em:
http://www.inf.ufes.br/~fvarejao/livroLP.html