Try .. Catch .. Finally (e using?!)
Olá pessoal. Tudo certo!? No post de hoje, mostro como o tratamento de exceptions é “representado” no Intermediate Langauge. Se você não conhece Intermediate Language, pode considerar útil dar consultar a série que escrevi explicando a linguagem. Try .. Catch Para começar, que tal dar uma olhada em algum código C# e no equivalente em… [Read more…]
Olá pessoal, tudo certo? No último post dessa série, mostrei minha implementação para emitting de propriedades automáticas. No post de hoje, mostro como realizei a implementação para suportar propriedades “read-only” e com código no getter e setter. Como de costume, lembre-se que todo o código-fonte está disponível no github. Testes para propriedades “read-only” Como de… [Read more…]
Olá pessoal, tudo certo? Depois de três meses, retomo esse projeto (consulte os posts anteriores para “pegar” o projeto). Para quem está chegando agora, FluentIL é uma espécie de helper para programas que necessitam fazer emitting. Naturalmente, para conseguir usar Emitting, você precisa saber Intermediate Language (há uma série extensa sobre esse assunto aqui no… [Read more…]
O que, de fato, acontece quando usamos o “lock” do C#
Olá pessoal, tudo certo? Um dos grandes “desafios” da programação paralela está em garantir que uma mesma “parcela” de dados não seja atualizada “ao mesmo tempo” por métodos rodando em Threads/Tasks diferentes. C# oferece uma forma fácil de garantir que isso aconteça. Basta usar a instrução lock. Mas, o que ocorre de fato quando usamos… [Read more…]
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…]
Olá galera, tudo certin? Depois do desabafo de ontem, resolvi pegar “leve” comigo mesmo e pisar em terra conhecida: voltemos a boa (e já velha) série IL 101. Go Code! Recapitulando Essa série tem por objetivo apresentar fundamentos da programação em Intermediate Language. O que já vimos até aqui foi: Parte 9: Boxing e Unboxing… [Read more…]
IL 101–Parte 9 (Boxing e Unboxing)
Recapitulando Essa série tem por objetivo os apresentar fundamentos da programação em Intermediate Language. O que já vimos até aqui foi: Parte 8: Construtores para ValueTypes e ReferenceTypes Parte 7: Atributos e propriedades Parte 6: Variáveis locais e loops Parte 5: Trabalhando com parâmetros Parte 4: Classes e namespaces Parte 3: Equilíbrio Performance e Memória… [Read more…]
IL 101–Parte 8
Recapitulando Essa série tem por objetivo os apresentar fundamentos da programação em Intermediate Language. O que já vimos até aqui foi: Parte 7: Atributos e propriedades Parte 6: Variáveis locais e loops Parte 5: Trabalhando com parâmetros Parte 4: Classes e namespaces Parte 3: Equilíbrio Performance e Memória em IL Parte 2: Estrutura da máquina… [Read more…]
Faça você mesmo o seu framework para Mocks e Proxies–Parte 7
Recapitulando Essa série objetiva construir um framework simples para criação de mocks e proxies. O que já vimos até agora foi: Parte 6 – Suporte básico para propriedades Parte 5 – Suporte a callbacks e mocks para mais de um tipo Parte 4 – Parâmetros coringa; Parte 3 – Interface fluente para configuração do Mock;… [Read more…]
Faça você mesmo o seu framework para Mocks e Proxies–Parte 6
Recapitulando Essa série objetiva construir um framework simples para criação de mocks e proxies. O que já vimos até agora foi: Parte 5 – Suporte a callbacks e mocks para mais de um tipo Parte 4 – Parâmetros coringa; Parte 3 – Interface fluente para configuração do Mock; Parte 2 – Programação do comportamento do… [Read more…]
IL 101–Parte 7
Recapitulando Essa série tem por objetivo os apresentar fundamentos da programação em Intermediate Language. O que já vimos até aqui foi: Parte 6: Variáveis locais e loops Parte 5: Trabalhando com parâmetros Parte 4: Classes e namespaces Parte 3: Equilíbrio Performance e Memória em IL Parte 2: Estrutura da máquina virtual IL Parte 1: Apresentando… [Read more…]
novembro 15, 2011
0