MCO018703 2020 1 AULA02

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Linguagens de Programação

Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Em outras palavras, permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.

O conjunto de palavras (lexemas classificados em tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.

Uma das principais metas das linguagens de programação é que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.

Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada. [1]

Linguagem de Baixo Nível

Linguagem de programação de baixo nível trata-se de uma linguagem de programação que segue as características da arquitetura do computador. Assim, utiliza somente instruções que serão executadas pelo processador, em contrapartida as linguagens de alto nível que utilizam de instruções abstratas. Nesse sentido, as linguagens de baixo nível estão diretamente relacionadas com a arquitetura do computador.

As linguagens de baixo nível são divididas em duas categorias: primeira geração e segunda geração. [2]

Primeira geração

A linguagem de primeira geração, ou 1GL, é o código de máquina. É a única linguagem que um microprocessador pode executar nativamente. O código de máquina pode ser escrito diretamente por um editor hexadecimal. Atualmente é raro que um programador trabalhe com o código de máquina diretamente, preferindo o uso da linguagem Assembly.

Segunda geração

A linguagem de segunda geração, ou 2GL, é a linguagem Assembly. É considerada de baixo nível pois embora não seja uma linguagem nativa do microprocessador, ainda sim utiliza apenas de instruções reais do processador. Desta forma a linguagem Assembly não contém nenhum tipo de instrução abstrata, onde cada instrução é convertida diretamente para a instrução equivalente em código de máquina pelo montador.

Exemplo de um programa em Assembly
section .data
msg     db      'Hello World', 0AH
len     equ     $-msg
 
section .text
global  _start
_start: mov     edx, len
        mov     ecx, msg
        mov     ebx, 1
        mov     eax, 4
        int     80h
 
        mov     ebx, 0
        mov     eax, 1
        int     80h
Nota
Todas essas linhas do código acima são para exibir a mensagem "Hello World". Porém é um código "humano", pois usamos mnemônicos, que são símbolos e códigos para que nós possamos entender. Obviamente, os computadores não leem como as pessoas, eles simplesmente obedece aos comandos em códigos binários/hexadecimais.

Linguagens de Alto Nível

Essas linguagens são aquelas cuja sintaxe se aproxima mais da nossa linguagem e se distanciam mais da linguagem de máquina.

Elas possuem um nível de abstração que faz com que você entenda aquele código mais facilmente, pois foi removido da sintaxe o que você não precisa entender em um primeiro contato com programação ou pra quem nunca vai mexer com linguagens de baixo nível.

Você não vai precisar conhecer coisas como registradores ou instruções do processador para conseguir fazer seu "Hello World". - Apesar que ninguém ensina isso antes de te mostrar o "Hello World" mesmo em linguagens de baixo nível. [3]

Alguns exemplos de linguagens de alto nível:

JavaScript
Python
PHP
Ruby
C
Exemplo de um programa em PHP
<html>
 <head>
  <title>Teste PHP</title>
 </head>
 <body>
 <?php echo "<p>Hello World</p>"; ?>
 </body>
</html>


Nota
Para testar esse código e necessário o uso de um navegador para acessar o arquivo com a URL de seu servidor web, terminando com a referência ao arquivo por exemplo: /ola.php. Quando o desenvolvimento for local esta URL será algo como http://localhost/ola.php ou http://127.0.0.1/ola.php mas isso depende da configuração do seu servidor web. Se tudo foi configurado corretamente, este arquivo será interpretado pelo PHP e a mensagem será enviada para seu navegador.
Exemplo de um programa em C
 

#include <stdio.h>

main()
{
  printf("Hello World\n");
}

Com certeza esse parece o mais simples. Por isso que no decorrer de nosso curso, vamos ter como base a linguagem C.

Baixo Nível Vs. Alto Nível

Na prática, é inviável desenvolver programas complexos em LINGUAGEM DE MÁQUINA. Em geral, utilizamos linguagens de ALTO NÍVEL que podem, de alguma forma, serem traduzidas (compiladas) para a linguagem de baixo nível ou interpretadas em tempo de execução.

Exemplos
  • Linguagem C
  • Fortran
  • Basic
  • C++
  • Pascal
  • Java
  • Python
  • PHP
Por que utilizaremos a linguagem C ?

É uma linguagem muito usada na implementação de produtos
eletrônicos, incluindo àqueles voltados às Engenharias.

Exercícios

1. O que é linguagem de programação?
2. Explique o que é portabilidade.
3. Explique qual a diferença entre linguagem de alto nível e de baixo nível.
4. Cite 4 linguagens de programação de alto nível.

Referências

[1] https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o

[2] https://woliveiras.com.br/posts/o-que-e-linguagem-de-programacao-de-alto-nivel/

[3] http://www.cafw.ufsm.br/~bruno/disciplinas/ling_programacao/materiais/resumo_c.pdf

[4] Slides programação em C




Icone voltar.png Icone menu.png Icone prox.png