Olá pessoal, como estamos? Outro dia falei sobre como reconhecer tokens em cadeias de caracteres. Depois, falei como fazer o parsing destes tokens conforme uma gramática LL(1). São conhecimentos fundamentais para quem pretende entender como funciona (ou se escreve) um compilador. No post de hoje utilizo os conceitos já apresentados para adicionar suporte a “compilação”… [Read more…]
Proxies dinâmicos usando Emitting (avançado) – Parte 3/3 [final]
Olá pessoal, como estamos? Este é o terceiro e último post de uma (mini) série mostrando como criar proxies dinâmicos com emitting. No primeiro post, mostrei como criar objetos dinamicamente que repassam chamadas de métodos para implementações concretas (proxies). No segundo post, mostrei como introduzir um “monitor” que seria “avisado” toda vez que um método… [Read more…]
Proxies dinâmicos usando Emitting (avançado) – Parte 2/3
Olá pessoal, como estamos?! No post anterior, iniciei a apresentar as etapas que percorri para construção de uma classe utilitária para geração, on-the-fly, de proxies. Trata-se de mais um exemplo prático (e útil) de emitting. No lugar de apresentar definições técnicas e explanações sobre tecnologia, apresento como a classe foi desenvolvida. Assim, compartilho, além da… [Read more…]
Proxies dinâmicos usando Emitting (avançado) – Parte 1/3
Olá pessoal, como estamos?! No post de hoje, começo a apresentar meu roteiro de desenvolvimento para uma classe utilitária para geração, on-the-fly, de proxies. Trata-se de mais um exemplo prático de emitting. Este é um post com conteúdo avançado. Por isso, não apresento fundamentação para o Proxy Pattern, Emitting ou Intermediate Language. Para facilitar minha… [Read more…]
FluentIL – Parte 7 – Expressions, atributos, Log, whatever!
Olá pessoal, como estamos? Há alguns dias não escrevia nada aqui no blog. Quero começar a falar sobre compiladores mas não estou conseguindo acertar o post inicial. Hoje vou relatar alguns avanços realizados na FluentIL. Se você não sabe do que se trata, consulte os posts anteriores dessa série. Lembre-se, todo código-fonte está disponível em… [Read more…]
Olá pessoal, tudo certo? Este é mais um post da série que acompanha o desenvolvimento de uma DSL (antes chamada de “toolkit”) que facilita o desenvolvimento de código para emitting. Embora essa série trate de aspectos avançados de emitting e Intermediate Language, também percebo como uma excelente oportunidade de exercício para construção de DSLs. No… [Read more…]
Exemplo prático (e útil) de Emitting e IL
Olá pessoal, tudo certo? Aplicação de filtros em imagens (com alto desempenho e flexibilidade)! Esse é o exemplo prático que apresento hoje para Emitting e IL. Se você acompanha meu blog há algum tempo e não consegue ver utilidadade prática para Emitting e IL, eis um exemplo a considerar. Se você já faz emitting, perceberá… [Read more…]
FluentIL – Parte 2 – If..Else
Olá pessoal, tudo certo? No post anterior iniciamos a construção de um projeto open-source que objetiva facilitar escrita de código para Emitting. O projeto se constitu, basicamente, de uma DSL que permite a escrita de código menos verboso e em nível mais alto (se comparado com a biblioteca de Emitting do .NET Framework). Hoje, continuamos… [Read more…]
FluentIL – Projeto Open-source para facilitar Emitting (Parte 1)
Olá pessoa, tudo certo? Há algum tempo venho tratando de IL aqui no blog. Acredito no potencial da tecnologia e percebo grande utilidade, principalmente quando combinada com Emitting. A utilização de IL e Emitting permite gerar código on-the-fly com performance superior. Ao meu ver, há dois obstáculos comuns para quem está começando a utilizar IL… [Read more…]
Core Debugging (C# –> Intermediate Language –> Assembly)
Olá pessoal, tudo certin? Depois de alguns dias em OFF, estou voltando as atividades aqui no blog. Aliás, gostaria de agradecer por todos os feedbacks que tenho recebido. Valeu mesmo! A idéia hoje é “estourar” alguns limites! Pretendo trabalhar um pouco com core debugging. Ou seja, quero mostrar mais do que aquilo que está acontencendo… [Read more…]
junho 1, 2011
0