chamado polimorfismo ad hoc. Um tipo mais geral deste ultimo e apresentado pelas funcoes da APL. Por causa da vinculacao dinamica de tipos da APL, os tipos de parametros podem permanecer sem ser especificados; eles simplesmente sao vinculados ao tipo de parametros reais correspondentes.Subprogramas genericos em AdaA Ada apresenta um poliformismo parametrico por meio de uma construcao que suporta a criacao de multiplas versoes de unidades de programa para aceitar parametros de diferentes tipos de dados.Uma vez que as unidades de programas desse tipo sao genericas por natureza, as vezes elas sao chamadas unidades genericas.A classificacao generica nada mais e do que um modelo para um procedimento.Lembre-se de que a Ada nao permite que subprogramas sejam passados a outros subprogramas.Funcoes genericas em C++As funcoes genericas em C++ tem o nome descritivo de funcoes modelo. A definicao de uma funcao modelo tem a forma geral:Template <>- Uma definicao de funcao que pode incluir os parametros da classeCada parametro da classe tem a formaClass identificadorCompilacao separada e independenteA capacidade de compilar parte de um programa sem a necessidade de compila-lo por inteiro e fundamental para a construcao de sistemas de software grandes. Com essa capacidade, somente os modulos de um sistema em modificacao pao pecisam ser recompilados durante o desenvolvimento e manipulacao.Existem duas abordagens distintas para compilar partes de um programa. O termo compilacao separada significa que as unidades de compilacao podem ser compiladas em tempos diferentes, mas elas nao sao independentes uma da outra. Em algumas linguagens, mais notavelmente no C e no FORTRAN 77, a compilacao independente e permitida; com ela as unidades de programa podem ser compiladas sem informacoes sobre quaisquer outras unidades de programas.A caracteristica mais importante da compilacao independente e que as interfaces entre as unidades compiladas separadamente nao sao verificadas quanto a coerencia de tipos.Efeitos colaterais funcionaisDevido aos problemas dos efeitos colaterais de funcoes que sao chamadas em expressoes, os parametros para funcoes sempre devem estar em modo de entrada (in mode).Tipos de valores retornadosA maioria das linguagens de programacao imperativas restringem os tipos que podem ser retornados por suas funcoes.A Ada esta sozinha entre as linguagens imperativa em termos que suas funcoes podem retornar valores de qualquer tipo.Acessando ambientes nao-locaisAs variaveis nao-locais (escopo ecstatic e o scoop dynamic) de um subprograma sao visiveis dentro dele, mas nao declaradas localmente. As variaveis globais sao visiveis em todas as unidades de programa.O principal problema de usar o escopo estatico como o meio de compartilhar variaveis nao-locais e o seguinte: uma boa quantidade da estrutura do programa pode ser ditada pela acessibilidade de subprogramas e de variaveis nao-locais a outros subprogramas, em vez de solucoes de problema bem trabalhadas.Dois tipos de problemas decorrem do escopo dinamico. Primeiro, durante o intervalo de tempo que se inicia quando a execucao de subprograma e iniciada e que se encerra quando e finalizada, as variaveis locais do subprograma sao visiveis a quaisquer outros subprogramas em execucao, independente da proximidade textual deles. O segundo e a incapacidade de fazer estaticamente a verificacao de tipos de referencias a nao-locais.Blocos COMMON do FORTRANO FORTRAN oferece acessos a