O Primeiro Verificador de Tipos do Bebê: Uma Aventura Python de 350 Linhas

2025-09-06
O Primeiro Verificador de Tipos do Bebê: Uma Aventura Python de 350 Linhas

Este artigo detalha a criação de um verificador de tipos básico para Python em apenas 350 linhas de código. O autor percorre o processo, desde a análise de código Python e a localização de anotações de tipos até a verificação de compatibilidade de tipos, o tratamento de chamadas de funções e tipos de retorno, o suporte a listas, dicionários e tipos de união e a implementação de restrição de tipos. Embora limitado em escopo, o verificador de tipos resultante captura com sucesso vários erros de tipo em código Python do mundo real, fornecendo um exemplo claro e acessível de como os verificadores de tipos funcionam.

Leia mais
Desenvolvimento verificador de tipos

A Maneira Surpreendentemente Rápida de Encontrar Vogais em Strings

2025-06-13
A Maneira Surpreendentemente Rápida de Encontrar Vogais em Strings

Este artigo compara onze métodos diferentes para detectar vogais em strings, desde loops simples a expressões regulares e até mesmo uma abordagem baseada em números primos. Surpreendentemente, as expressões regulares superam consistentemente outros métodos, mesmo loops simples, em vários comprimentos de string. Uma análise aprofundada do bytecode Python e do mecanismo de expressão regular CPython revela o motivo da velocidade das expressões regulares. O autor conclui que, embora as expressões regulares sejam as mais rápidas na maioria dos casos, métodos mais simples são suficientes, a menos que se esteja lidando com milhões de strings.

Leia mais
Desenvolvimento processamento de strings

Adeus APIs de Geocodificação Caras: Uma Biblioteca JavaScript Leve para Busca de Estado/Província

2025-06-04
Adeus APIs de Geocodificação Caras: Uma Biblioteca JavaScript Leve para Busca de Estado/Província

Uma startup gastava milhares de dólares anualmente com a API do Google Maps para geocodificação reversa, apenas para determinar os estados dos usuários. Achando isso um desperdício, o autor criou `coord2state`, uma biblioteca JavaScript leve que identifica diretamente os estados dos EUA a partir de coordenadas de latitude/longitude. Aproveitando dados de fronteira do Censo dos EUA e o algoritmo de Douglas-Peucker para simplificação, ela atinge 99,9% de precisão com uma tolerância de 0,01°, pesando apenas 260 KB. A biblioteca é de código aberto no GitHub e NPM, oferecendo uma alternativa econômica para desenvolvedores.

Leia mais

Uma jornada de 25 anos em IA/ML: De jogos à síntese de programas

2025-01-02
Uma jornada de 25 anos em IA/ML: De jogos à síntese de programas

Este artigo narra uma jornada de 25 anos em IA/ML. Começa com jogos simples em VB6, progredindo para o uso de máquinas de estado e funções de ordem superior para aprimorar a dinâmica dos jogos. Os estudos de pós-graduação introduziram lógica de primeira ordem, máquinas de vetores de suporte e redes neurais, aplicadas a projetos como bate-papo de vídeo de baixa largura de banda e análise de dados de log de editores de código. Como professor, o autor focou em ferramentas de desenvolvedor inteligentes, explorando modelos preditivos para identificar e corrigir equívocos de programadores. Seu trabalho na equipe de síntese de programas da Microsoft envolveu LLMs para melhorar a assistência de código. O autor enfatiza a importância da aplicação cuidadosa da IA, priorizando problemas claros do usuário e evitando a dependência excessiva de LLMs.

Leia mais