Nas linguagens de programação o conceito de “Name Binding” é uma abstração que está relacionado a associação de valores com seus identificadores. Um identificador garante ao valor o que é referenciado a esse valor.
Em linguagens fortemente tipadas o binding é estático (”Early Binding”) e suas propriedades são definidas em tempo de compilação e/ou interpretação garantindo a montagem do código de máquina. Isso garante de antemão a inexistência de erros de atribuição e oferece ao ambiente de desenvolvimento um melhor suporte a IntelliSense (a capacidade que dá ao desenvolvedor listar as propriedades de determinado objeto) com os tipos de cada propriedade.
Em linguagens fracamente tipadas o tipo do valor é referenciado em tempo de execução (”Late ou Virtual Binding”) e o compilador/interpretador só conhece esse tipo quando o código faz a checagem e então determina o suporte necessário à propriedade sem ocorrer penalidades.
Linguagens de tipo estático executam menos operações, notadamente pela checagem prévia e oferecem um suporte melhor na garantia da execução mas em contrapartida não possuem a flexibilidade das linguagens dinâmicas.
ECMAScript somente suporta “Late Binding”. O interpretador resolve os tipos de dados na última hora, em tempo de execução, algumas linguagens (como Ruby e Smalltalk) utilizam uma forma particular de Late Binding, a Duck Typing.
Categories: JavaScript ~ ~ Trackback


January 31st, 2008 at 11:31 am
[...] http://www.milfont.org/tech/2007/10/01/early-vs-late-binding/ [...]