Igor Nunes

Curioso na área da tecnologia e em especial da programação, tem uma saudável relação com o Object Pascal e é conhece- dor das bases de outras linguagens de programação, como Haskell, C, Python e VB.NET. No P@P, é membro da Wiki Team e Moderador Global.

Pascal – array de argumentos

A definição da linguagem Pascal, desde os seus primórdios, estabelece regras bastante rígidas acerca da passagem de argumentos a uma função ou procedimento. No seu conjunto, uma das consequências destas regras é a impossibilidade de se implementarem funções variádicas, isto é, funções sem um número definido de argumentos. Na prática, isto traduz-se na possibilidade de se poder fornecer virtualmente uma infinidade de argumentos à função, não havendo a restrição de ser necessário passar apenas N argumentos em determinada ordem e com determinados tipos.

Várias linguagens permitem a implementação de funções variádicas, como por exemplo C e até Haskell (com recurso a alguns truques na definição de tipos de dados e suas heranças).

 O facto de Pascal não permitir a implementação de funções variádicas pode suscitar algumas dúvidas. Métodos standard que formam a base do Pascal são aparentemente variádicos, como o writeln e o readln. No entanto, estes métodos não são exactamente funções ou procedimentos. A sua construção está a cargo do próprio compilador em compile time, não sendo uma característica da linguagem.

Continuar a ler

Pascal – operator overloading

Várias são as linguagens nas quais podemos fazer overload de funções; esta funcionalidade permite que uma função possua várias versões que admitam diferentes conjuntos de argumentos, ficando o compilador encarregue de seleccionar qual dos overloads é o correcto aquando da invocação dessa função. Uma das linguagens com essa capacidade é o Object Pascal moderno.

Em Pascal, este tipo de polimorfismo também se aplica aos operadores, os quais podem de igual forma ser overloaded.

Na definição da linguagem Pascal segundo a documentação do Free Pascal, os tokens (palavras que constituem o código do nosso programa) podem pertencer a várias categorias, cada uma delas com funções ou características particulares. Uma dessas categorias é a dos operadores, os quais são um símbolo ou conjunto de dois símbolos, com uma função específica, admitindo um ou dois operandos e devolvendo um resultado. Os operadores são habitualmente funções com nomes e sintaxe especiais (nomes compostos por símbolos e invocação infixa, por oposição à tradicional invocação prefixa).

Continuar a ler