Terminação do Programa

Q: Os programas BLOCO acabam com um ponto final ?
R: Tal como se observa nos exemplos, os programas BLOCO terminam com um ponto final ".". O manual de referência da linguagem Bloco foi actualizado em 14/3/2005 com esta alteração.

Representação de Reais

Q: Como são representados os números reais na linguagem bloco?
R: Os literais reais são representados como em C, mas não existem sufixos para distinguir float/double/long double (existe apenas um tipo "real")
"Floating-point constants contain a decimal point (123.4) or an exponent (1e-2) or both." -- The C Programming Language pag. 37
"A floating constant consists of an integer part, a decimal point, a fraction part, an 'e' or 'E', an optionally signed integer exponent part both consist of a sequence of digits. Either the integer part or the fraction part (not both) may be missing; either the decimal point or the 'e' and the exponent (not both) may be missing[...]." -- The C Programming Language pag. 194.

Representação de Inteiros

Q: Quais são as possíveis representações para os literais inteiros? Só existe a representação decimal para inteiros? Ou também existem representacões hexadecimais ou octais?
R: Só existe a representação decimal.

se-entao

Q: Na instrucao 'se' depois do 'entao' só pode vir uma 'instrucao' seguido de 'alternativas'? estamos na duvida se nao seria um conjunto de uma ou mais 'instrucao'...
R: É apenas instrução, mas repare que um bloco é uma instrução.

senaose

Q: No manual de referência aparece o seguinte na gramática " (...) alternativas->senaose expressão entao instrução alternativas (...)".
No entanto nada é dito em relação ao caso de paragem desta recursividade, ou seja a dúvida consiste em saber se alternativas são 0 ou mais ocorrênias de alternativa ou se e 1 ou mais?
R: São 0 ou mais.

Qualificadores

Q: Numa declaração o qualificador tem mesmo de existir, tal como está descrito no manual de referência bloco? é que nos ficheiros exemplo aparecem declarações tanto de variáveis como de funções sem nenhum qualificador.
R: Este aspecto está explicado no manual do Bloco, leia com atenção...

Expressões

Q: Ainda relacionado com as instrucoes, a 'expressao' que aparece no 'se' e no 'enquanto' pode ser qualquer expressao? não deveria ter apenas valores lógicos ?
R: Nessa situação, expressão só faz sentido para o tipo lógico. Mas não se esqueça que podem existir conversões implícitas.

Caracteres BLOCO

Q: Os caracteres BLOCO codificam sequências ASCII?
R: Não. Os caracteres BLOCO definem inteiros de 8 bits (tal como o C). Usualmente (mas não exclusivamente), estes inteiros indexam a tabela ASCII. De facto, podem indexar outras tabelas: por exemplo, ISO 8859 ou UTF8.

Caracteres BLOCO (2)

Q: No caso de números em hexadecimal, sabendo que a sequência mais alta é \xff, que corresponde a 255 em decimal, deve-se, à semelhança de alguns compiladores de C, aceitar todos os símbolos hexadecimais adjacentes como pertencendo à mesma sequência (e.g. \xfff), ou seja, absorvendo todos os f para alem do limite de dois caracteres, ou, simplesmente, considerar apenas a sequência especial \xff seguida de f ?
R:  Estes casos não vão ser testados, pelo que podem ser definidos como for mais conveniente. Ou seja, pode-se, por exemplo, proceder à absorção de todos os caracteres do literal que façam parte da base hexadecimal e, caso excedam a capacidade de representação do tipo, ser emitido um aviso.

Ponto e Vírgula

Q: No manual é dito que todas as intruções acabam com ; no entanto isso parece não acontecer nas instruções SE e ENQUANTO dos exemplos.
R: Realmente existe uma pequena incoerência no manual. Deve ser assumido que instruções que terminam com uma instrução (como SE ou ENQUANTO) terminam com o ponto e virgula da sua instrução, tal como nos exemplos.