A maior rede de estudos do Brasil

Grátis
87 pág.
apostila-alg-prog-uergs

Pré-visualização | Página 7 de 23

externo, que exista um processo contínuo
de troca de informações entre o programa e o ambiente externo. Desta forma, do ponto de
vista funcional, um programa pode ser subdivi em três grandes partes:
• Entrada de Dados ou Informações: formada por todas as instruções que obtém
dados do ambiente externo, guardando estes dados numa área de armazenamento
(uma memória) interna para que possam ser processados posteriormente.
• Processamento das Informações: parte do programa responsável por resolver o
problema a partir dos dados recém obtidos pela entrada de dados. Além das
instruções e operações executadas sobre estes dados de entrada, o processamento de
informações também faz uso da memória para guardar informações temporárias e
para preparar informações para saída.
• Saída de dados ou informações: uma vez que existam resultados que possam ser
apresentados externamente, então eles devem ser preparados e enviados para o
ambiente externo, através de um conjunto específico de instruções.
É importante salientar que estes três elementos básicos de qualquer programa não estão
necessariamente separados e identificados claramente dentro do programa. O normal,
inclusive, é encontrar as operações e instruções referentes a cada parte misturadas entre si,
de acordo com a necessidade que o programa tenha de obter novos dados ou de informar
algum resultado intermediário. Apesar disto sempre se pode analisar e decompor qualquer
problema, identificando os trecho correspondentes a entrada de informações, ao
processamento destas e a saída destas informações para o ambiente externo.
Em relação ao ambiente externo e a forma como se dá esta interação, valem algumas
considerações:
• O objetivo da entrada e saída de dados é geralmente a comunicação com algum
usuário.
• Apesar disso deve-se ter em mente que tanto a entrada quanto a saída de
informações é mediada através de dispositivos especiais de entrada e saída, ou
periféricos de entrada e saída.
UERGS - Algoritmos e Programação Capítulo 1 -Introdução
13 Copyright  2002,03 João Carlos Gluz
• Também não é incomum que um programa se comunique apenas com um
dispositivo, por exemplo um sensor externo, sem a intervenção de nenhum usuário.
Isto é comum em controle de processos industriais, por exemplo.
• Outra possibilidade que existe é que um programa se comunique com outro
programa através da entrada e saída de dados. As Redes de Computadores e os
Sistemas Distribuídos são os exemplos mais evidentes deste tipo de interação.
Uma outra estruturação que se faz comumente em relação aos programas tem a ver com a
metodologia empregada para organizar logicamente as solução de problema através de
computadores. Dada as características que os computadores tem para manipular dados e
informações, cada programa deve ser dividido em duas grandes partes:
• Especificação dos Dados: onde se define como serão estruturados os dados a serem
usados pelo programa, ou seja, onde se declara como serão as estruturas de dados
usadas pelo programa.
• Especificação do Algoritmo: onde se define o conjunto de instruções que o
computador terá que executar para resolver o problema.
Resumindo um programa é a soma das suas estruturas de dados com o seu algoritmo,
escritos em alguma linguagem própria para ser executada por um computador (uma
linguagem de programação).
1.5. Linguagens de Programação
Como visto anteriormente, um programa é um conjunto de instruções que dirigem a
operação de um computador. Porém existem muitas maneiras de se construir um programa,
porque existem inúmeras formas como este conjunto de instruções pode ser organizado e
estruturado e também existem muitos tipos distintos de instruções, operações ou comandos
que podem ser executados por um computador. O ramo da computação que estuda como os
programas podem ser construídos é o de Linguagens de Programação.
Linguagem, Símbolos e Gramática
Uma linguagem é uma notação ou convenção que se pode usar como meio de comunicação
de informações, conhecimentos, sentimentos, etc. entre seres humanos. Uma linguagem de
programação é, então, uma forma de notação que nos permite comunicar a um computador
os comandos e instruções que ele deve executar. Dito desta forma é evidente que qualquer
programa deve ser escrito em algum tipo de linguagem de programação, ou seja, em
alguma linguagem que possa ser compreendida por um computador (embora evidente, as
vezes é esquecido, principalmente por programação mal feita, um programa também deve
ser compreendido por um ser humano).
Qualquer linguagem contém um conjunto de simbolos básicos e atende um conjunto de
regras precisas que diz como estes símbolos são organizados em expressões, frases,
orações, etc. Estas regras definem a gramática da linguagem. Uma grande diferença entre
UERGS - Algoritmos e Programação Capítulo 1 -Introdução
14 Copyright  2002,03 João Carlos Gluz
as linguagens usadas pelos seres humanos e as linguagens de programação, é que as
linguagens humanas, também denominadas de linguagens naturais, embora certamente
contenham símbolos (letras, palavras, fonemas, ideogramas, etc) e sigam regras
gramaticais, nem sempre tem estes elementos precisamente identificados ou formalmente
definidos, isto é, linguagens naturais não são completamente formais. Por outro lado as
linguagens de programação devem, pela própria natureza formal e “mecânica” dos
computadores ser linguagens formais, com regras precisamente definidas de como as
expressões linguísticas podem ser construídas.
Sintaxe e Semântica
De agora em diante, se nada for dito em contrário, o termo linguagem se referirá
exclusivamente às linguagens de programação. A regras gramaticais de uma linguagem
definem a sintaxe destas linguagem que é a forma como se pode construir expressões
corretas da linguagem. O fato de se ter uma expressão correta gramaticalmente, isto é, com
uma sintaxe correta não quer dizer necessariamente que a expressão tem algum sentido ou
significado. O significado atribuído a uma dada construção linguística é denominado de
semântica desta construção. Embora a semântica das linguagens naturais seja
extremamente complexa e relacionada ao pensamento, à razão, as emoções, sentimentos e
inúmeras outras características humanas, a semântica das linguagens de programação não
segue um território tão perigoso. Todas as construções de uma linguagem de programação
tem seu significado precisamente fundamentado sobre as operações e instruções básicas
que um computador pode executar.
Entretanto, o principal objetivo de pesquisa da área de linguagens de programação é de
buscar formas de se escrever programas que sejam cada vez mais parecidas ou similares
com a nossa forma de se comunicar e trocar idéias e informações, isto é, o objetivo é tentar
trazer as linguagens de programação o mais próximo possível das linguagens e conceitos
usados por nós.
Níveis de Linguagens
Para tanto o usual é dividir este problema, considerando que as linguagens possam ser
classificadas em diferentes níveis de linguagens, sendo os níveis inferiores mais próximos
das máquinas e os níveis superiores mais próximos dos seres humanas. Assim linguagens
dos níveis inferiores, as linguagens de baixo nível, teriam suas construções linguísticas
mais próximas das operações e estruturas de dados disponibilizados pelos computadores,
enquanto que as linguagens superiores ou de alto nível, teriam suas construções mais
próximas da linguagem natural ou pelo menos de mais fácil compreensão pelas pessoas.
Uma outra diferença importante seria a de que as linguagens de alto nível conseguiriam
atingir independência em relação à máquina, podendo um mesmo programa ser utilizado
em diferentes equipamentos com a única condição de disporem de um programa de
tradução compatível com a linguagem. Esta característica, idealmente, permitiria isolar ou
diminuir a necessidade de se ter conhecimento do hardware para se programar