Rodrigo Kumpera Weblog

Meus achados sobre tecnologia

Entries Tagged as 'Programming'

A beleza do sistema de tipos do C#

July 14th, 2011 · No Comments

Outro dia me apresentaram o código abaixo com um dúvida bem boba. Esse código em C# abusa um pouco de uma das novidades da última revisão da linguagem, tipos genéricos variantes. Vamos ao código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
interface A<in B> { }
 
interface B<in A> { }
 
class X : A<B<X>> { }
 
class Y : B<A<Y>> { }
 
class Test
{
static void Main [...]

[Read more →]

Tags: Programming · Programming language Theory · language design

Escrevendo um JIT em menos de 40 linhas de C#

August 30th, 2010 · 3 Comments

O desafio é escrever um programa capaz de gerar o código nativo para uma função “int foo () { return 10; }” e executá-lo. Parece impossível, mas não é. E com um pouco de esforço não deve consumir muito tempo também. Para isso vamos precisar saber algumas coisas antes.
Primeiro, é necessário saber um pouco de [...]

[Read more →]

Tags: Programming

Limites da orientação a objetos

August 30th, 2009 · 1 Comment

Toda linguagem de programação pode ser analisada pela sua junção de três elementos distintos: forma, comportamento e taxonomia. Cada um define um aspectodistinto de como o conjunto de valores que compõe um programa é usado.
Cada um destes valores possui um forma, que é a representação concreta para o conceito abstrato que cada um significa. Um [...]

[Read more →]

Tags: Programming · Programming language Theory · language design

Onde estão os profissionais?

May 15th, 2009 · 17 Comments

Todo mundo fala que existe um deficit de profissionais de tecnologia enorme. Aquele mítico número de cem mil profissionais que ninguém consegue achar. Que isso é um fato, não ha de se discutir, todas empresas com que tenho contato próximo possuem varias vagas em aberto a muitos meses.
A primeira solução que vem à cabeça de [...]

[Read more →]

Tags: Programming · misc

Lançado Mono 2.2 com estréia de Mono.Simd

January 14th, 2009 · 12 Comments

Acabou de ser lançado versão 2.2 do Mono. Foram vários meses de trabalho e muito suor em corrigir centenas de bugs para podermos fazer nosso melhor release de todos os tempos. Dentro das novidades gostaria de destacar duas relativa ao time que participo. A primeira é o novo JIT baseado em uma representação intermediaria linear, [...]

[Read more →]

Tags: Performance · Programming · mono

Ode ao C

January 12th, 2009 · 5 Comments

A parte que mais odeio no C é ser minha melhor opção. Sim, sério, para aquilo que faço hoje em dia, realmente não existe linguagem melhor. E isso de deixa maluco pois se trata de uma linguagem anacrônica, cheia de problemas enormes que aparentemente toda comunidade de PLR esqueceu de tentar resolver.
Para quem já programou [...]

[Read more →]

Tags: Programming · anger management · language design

Herança não funciona, parte III

December 1st, 2008 · 1 Comment

Em artigos anteriores eu descrevi algum dos problemas associados com herança, ou subtipagem, e questões ligadas a co/contravariância. Porém outra questão me chamou muito a atenção recentemente, é o fato de classes e objetos como normalmente vemos em linguagens com tipagem explícita são uma mistura de conceitos que talvez não deveriam estar juntos.
O que exatamente [...]

[Read more →]

Tags: Programming · Programming language Theory · language design

Code swarm: representando visualmente um projeto

October 2nd, 2008 · 1 Comment

Como podemos produzir uma representação visual da evolução de um projeto? O pessoal do projeto code swarm tem uma ótima resposta. Um vídeo gerado a partir do histórico de commits do projeto.
O mais legal disso tudo é que o software é de código aberto, então qualquer um pode produzir vídeos também. Resolvi então fazer uma [...]

[Read more →]

Tags: Programming

A Nova onda de interpretadores

September 30th, 2008 · 2 Comments

Interpretadores voltaram a ser um assunto muito discutido devido aos resultados alcansados pela SquirrelFish (interpretador de javascript do Webkit) e ao fato da VM do Android também usar um. Curiosamente, ambas VMs são baseadas em registradores em vez de pilha, como as máquinas virtuais tradicionais como JVM e CLR.
A grande diferença está na forma como [...]

[Read more →]

Tags: Performance · Programming · language design

Otimizar nunca é fácil

September 29th, 2008 · 2 Comments

Otimização não é difícil apenas pelo fato de que tornar um pedaço de código mais rápido seja uma tarefa complicada, mas também por nem sempre ser possível ter oque medir ou mesmo saber como medir.
Nessas duas últimas semanas passei por isso, estou trabalhando em um novo recurso do JIT do mono e tinha que medir [...]

[Read more →]

Tags: Programming