sexta-feira, 8 de maio de 2009

Em que linguagem Charlie está programando?

No episódio 20 da quinta temporada de Numb3rs (E05S20), Charlie está tentando resolver um problema utilizando uma implementação do algoritmo de Dijkstra. Fiquei intrigado e fui olhar de perto o código, que é o que segue:

Clique na imagem para ampliar

Que linguagem é esta, utilizada por ele para implementar o algoritmo? Será que é uma linguagem real ou inventaram para este episódio? Se você sabe ou tem uma idéia, poste um comentário.

10 comentários:

Anônimo disse...

Pseudo-código?

http://www.cprogramming.com/tutorial/computersciencetheory/dijkstra.html

buzz disse...

É uma linguagem dinâmica, escálável portável e interoperável!

Ela tem um estilo clean, não é verborrágica como (evil)java(/evil).

Ela é intuitiva.

O desempenho dela é bem pior do que C. Mas veja bem, vc fica 10e99999 vezes mais produtivo com ela kra!!!!!!

Já tem alguma lista de discussão dela no brasil? Apostilas, tutoriais, livros, minicursos pra já!

Ah, mas pra essa linguagem ficar boa ela precisa de um canal na freenode, um planet e um framework web!

Será que vamos ter um espaço para a comunidade dessa linguagem no fisl esse ano?

MARCO ANDRE LOPES MENDES disse...

É, parece que ele usou um pseudocódigo. Depois de escrever fui olhar mais atentamente e percebi isso. Ele perdeu uma grande chance de utilizar uma linguagem dinâmica, multiplataforma com uma sintaxe simples e elegante.

Tiago "PacMan" Peczenyj disse...

É qq coisa menos cobol

Giuliani Deon Sanches disse...

Me lembra em muitos pontos o python. Bloco delimitado por identação, poucas linhas de código e de fácil leitura sem uso de caracteres do tipo @, #, ->, $, << etc...

Leonardo L. disse...

Recebi um e-mail com um link para a foto e para o post do blog. Enquanto a imagem carregava, achei que seria alguma linguagem de tipagem dinâmica com sintaxe "moderna", mas logo deu pra perceber que se tratava de pseudo-código - visto diretrizes como "is not an", "outgoing from", etc.

Eu iria mais longe ainda e diria que ele está programando sob o clássico paradigma da programação estruturada, e não por acaso escolheram o algoritmo de Dijkstra: ele também foi uma das maiores referências quando o assunto era programação estruturada.

Sobre as oportunidades, eu discordo das opções apresentadas até o momento. Acho que ele apresentou uma ótima opção: uma solução independente de linguagem, praticamente atemporal, e de fácil legibilidade/entendimento. Isto inclusive representa muito melhor o personagem dele.

Se fosse para utilizar uma linguagem específica, seria muita mais interessante apresentar - por exemplo - uma linguagem funcional, fortemente e estaticamente tipada, que permitisse a ele especificar o problema através dos dados antes de iniciar a implementação. Ou até apresentar outras linguagens que estão dentro do ambiente acadêmico, como as multiparadigmas (lógico-funcionais-OO, por exemplo).

Afinal, para um personagem "nerd" que é praticamente a definição da palavra em si, seria muito mais interessante ele estar mais ligado com a ciência em si do que com técnicas ou linguagens populares.

E é isso.

Leonardo L. disse...

Ops.. mandei o comentário e só percebi depois: confundi os seriados, achei que era algum dos personagens do "Big Bang Theory", depois que vi o "Numb3rs" do começo do post. Falha nossa!

De qualquer forma, o que muda é o último parágrafo: não é o personagem de um "nerd" ao extremo, mas de um gênio matemático - o que combina ainda mais com o uso de técnicas e ferramentas de programação mais abstratas.

E é isso!

Mesti Hudson disse...

Não é 100%, mas tudo leva a crer que seja LUA (www.lua.org, http://info.abril.com.br/professional/desenvolvimento/o-mundo-se-rende-a-brasileira-lua.shtml).

Anônimo disse...

É o pseudocódigo do algoritmo na Wikipédia anglófona, com algumas variáveis alteradas: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Pseudocode

Danilo disse...

Realmente é pseudocódigo, segue abaixo link que tem o mesmo código que apareceu na imagem:

http://en.giswiki.net/wiki/Dijkstra%27s_algorithm#Pseudocode