Linguagem Algol

Grupo responsável:

  • Gabriel Barros de Paula
  • Walter Breno Theves

Tudo sobre a Linguagem Algol

A Composição dos Nomes

  • Qual o tamanho máximo que podem ter os nomes em Algol?

Um nome é uma cadeia de caracteres usada para identificar algumas entidades em um programa, o Algol permite até 31 caracteres em seus nomes.

  • Existe distinção entre maiúsculas e minúsculas na composição dos nomes em Algol?

Sim, o Algol diferencia maiúsculas de minúsculas na composição dos nomes.

  • Quantas palavras-chave e palavras reservadas existem na linguagem?

Existem várias palavras-chave e palavras reservadas na linguagem ALGOL. Muitas delas continuam sendo usadas até hoje em muitas linguagens de programação.

Algumas palavras-chave e palavras reservadas do ALGOL: array, Boolean, begin, comment, else, end, false, goto, if, integer, label, own, procedure, real, step, string, switch, then, true, until, value e while.

As Variáveis

  • Existe suporte a apelidos?
  • Qual é a faixa de valores das variáveis em função do tipo?
  • Que tipo de declarações são aceitas (implícitas, explícitas)?

As declarações são apoiados por declarações que não são elas mesmas instruções de computação, mas informar o tradutor da existência e certas propriedades dos objetos que aparecem nas declarações, tais como a classe dos números assumidos como valores por uma variável, a dimensão de uma matriz de números, ou mesmo o conjunto de regras que definem uma função. A sequence of declarations followed by a sequence of statements and enclosed between begin and end constitutes a block. A sequência de declarações seguidas por uma seqüência de declarações e colocada entre começar e terminar constitui um bloco. Every declaration appears in a block in this way and is valid only for that block. Cada declaração aparece em um bloco desta maneira e é válida apenas para aquele bloco. Sua interpretação é melhor explicado por um exemplo:

  <ab> ::= ( | [ | <ab> ( | <ab> <d> <ab> :: = (| [| <ab> (| <ab> <d>

Seqüências de caracteres englobados na faixa <> representam variáveis ​​metalingüísticas cujos valores são sequências de símbolos. As marcas :: = e | (este último com o significado de ou) são conectivos metalingüísticas. Qualquer marca numa fórmula, que não é uma variável ou um conjuntivo, denota em si (ou a classe de marcas que são semelhantes a ele). Justa posição das marcas e / ou variáveis ​​em uma fórmula significa justaposição das seqüências indicados. Assim, a fórmula acima dá uma regra recursiva para a formação de valores da <ab> variável. Isto indica que <ab> pode ter o valor (ou [ou que, dado algum valor legítimo do <ab>, outro pode ser formado, seguindo-o com o carácter (ou seguindo-lo com algum valor do <d> variável. Se os valores de <d> são os dígitos decimais, alguns valores de <ab> são:

[(((1 (37 ( (12345( (12345 ( ((( ((( [86 [86

A fim de facilitar o estudo, os símbolos utilizados para distinguir as variáveis ​​metalingüísticas (isto é, a sequência de caracteres que aparecem dentro dos suportes <> como ab no exemplo acima) foram escolhidos para ser palavras que descrevem aproximadamente a natureza da variável correspondente. Onde as palavras que surgiram desta forma são usados ​​em outras partes do texto que irá se referir à definição correspondente sintática. Além disso, alguns fórmulas foram dadas em mais do que um local.

Definição:

<empty> ::= <empty> :: =

  • Existe suporte a vinculação dinâmica de tipos?

Identificadores não têm significado inerente, mas servem para a identificação de variáveis ​​simples, matrizes, etiquetas, switches e procedimentos. Eles podem ser escolhidos livremente. Sintaxe: <identificador> :: = carta> | <identificador>

      <letter> | <identifier> <digit> <letra> | <identificador> <digito>

Exemplos: q Soup Sopa V17a V17a a34kTMNs a34kTMNs MARILYN MARILYN

Os mesmos identificadores não pode ser usado para designar duas quantidades diferentes, exceto quando estas quantidades têm âmbitos separados, tal como definido pelas declarações do programa.

  • Existe suporte a tipificação forte?

A tipificação é forte. Uma declaração de um identificador é válido para um bloco. Fora deste bloco o identificador particular pode ser usado para outros fins. Dinamicamente isto implica o seguinte: no momento de uma entrada em um bloco (através do começar, já que as etiquetas dentro são locais e, portanto, inacessível de fora) todos os identificadores declarados para o bloco assumir o significado implícito pela natureza das declarações prestadas. Se esses identificadores já havia sido definido por outras declarações fora são para o tempo a ser dado um novo significado. “Identifiers which are not declared for the block, on the other hand, retain their old meaning”. Identificadores que não são declarados para o bloco, por outro lado, retêm o seu significado de idade. No momento de uma saída de um bloco (através da extremidade, ou por um ir para a instrução) todos os identificadores que são declarados para o bloco de perder o seu significado local.

  • Como é o escopo (estático, dinâmico ou ambos)?

É dinâmico.

 
algol-2-trabalho.txt · Last modified: 2012/03/29 23:35 by clp · [Old revisions]