estructuras de datos
17 noticias
ClojureFnl: Compilador une Clojure y Fennel
Un desarrollador ha creado 'ClojureFnl', un compilador que traduce código Clojure a Fennel, un lenguaje Lisp inspirado en Clojure y que se ejecuta en Lua. El proyecto surgió inicialmente como una biblioteca llamada 'fennel-cljlib' en 2019, cuyo objetivo era incorporar características de Clojure en F
IA en código: la limpieza sigue siendo clave
Un artículo reciente en yanist.com destaca la importancia continua de la programación limpia, incluso en la era de los agentes de codificación impulsados por inteligencia artificial. El autor argumenta que, a pesar de las diferencias entre los desarrolladores humanos y los agentes de codificación, l
Visualizaciones con JSON: un nuevo formato interactivo
JSON Canvas es un formato de datos diseñado para representar diagramas interactivos y visualizaciones complejas basadas en nodos y aristas. Imagina una herramienta para crear mapas mentales, organigramas o incluso diagramas de flujo, pero en lugar de usar una interfaz gráfica, defines la estructura
Datos: un error de décadas en su estructura
Durante décadas, la forma en que estructuramos y preparamos datos antes de aplicar algoritmos criptográficos como firmas, encriptación, MACs (Message Authentication Codes) o hashes, ha sido un problema sin una solución verdaderamente sólida. El problema principal radica en dos aspectos: primero, la
Nombres en Go: Guía para un Código Claro
Este artículo de Alex Edwards, extraído de su libro sobre desarrollo web en Go, aborda las convenciones de nomenclatura en el lenguaje Go. Una buena nomenclatura es crucial para la legibilidad, mantenibilidad y predictibilidad del código. Aunque Go permite nombres técnicamente válidos (usando unicod
Primos de 32 bits: un algoritmo optimizado
Este artículo explora la generación de todos los números primos de 32 bits (uint32_t) en Linux de la manera más rápida posible. El objetivo es crear un programa en C que escriba estos primos en un archivo binario, con cada número primo representado en 4 bytes en formato little-endian. El archivo res
Emacs: Técnicas Internas para Manejar Tipos de Datos
Este artículo del blog de The Cloudlet explora técnicas de programación de sistemas utilizadas en GNU Emacs para representar valores Lisp de manera eficiente. El núcleo del problema radica en cómo manejar variables que deben contener valores de diferentes tipos en tiempo de ejecución, preservando la
Ukkonen: Visualizando un Algoritmo Complejo
Este artículo explora la visualización del algoritmo de Árbol de Sufijos de Ukkonen, una técnica compleja para indexar y buscar subcadenas dentro de grandes conjuntos de datos de texto. El autor, un divulgador técnico, comparte su experiencia personal en el aprendizaje de algoritmos, destacando la b
Programación con caramelos: nace MNM Lang
Este proyecto, llamado MNM Lang, es una demostración ingeniosa de cómo se puede crear un lenguaje de programación utilizando M&M's (o GEMS, una versión india). La idea surgió de un accidente: el autor derramó un paquete de caramelos que se organizaron en un patrón que le recordó un código. El objeti
Acelera apps: optimiza la memoria y gana velocidad
Un artículo técnico explora métodos avanzados para optimizar la gestión de memoria en aplicaciones, buscando mejoras significativas en la velocidad. El autor, con experiencia en la resolución de problemas de rendimiento en proyectos de software, destaca que la optimización de la memoria, a menudo pa
Quadtrees: estructura de datos para búsquedas rápidas
## Quadtrees: Estructuras de Datos para Búsquedas Rápidas En el mundo del desarrollo de aplicaciones, especialmente en áreas como la cartografía, los juegos y las bases de datos espaciales, la eficiencia en las búsquedas es crucial. Imaginen una aplicación de mapas con millones de puntos de interés
PL/0: lenguaje de programación para aprender a programar
PL/0 es un lenguaje de programación diseñado específicamente para fines educativos. Creado por Niklaus Wirth en 1976 como parte de su libro 'Algorithms + Data Structures = Programs', PL/0 se asemeja a Pascal pero es significativamente más simple. Su principal objetivo no es ser un lenguaje para apli
Desigualdades asintóticas: ¿qué significa f(x) ≤ g(x) + O(1)?
En el ámbito de la informática teórica, especialmente en áreas como la teoría de la información y la complejidad de Kolmogorov, a veces nos encontramos con desigualdades asintóticas que requieren una notación específica. El artículo de James Oswald explica una de estas notaciones: `f(x) ≤ g(x) + O(1
Nuevo algoritmo acelera cálculo de rutas en grafos
Este proyecto, llamado DMMSY-SSSP, representa un avance significativo en la resolución de problemas de camino más corto desde un solo origen (SSSP) en grafos grandes y dispersos. Tradicionalmente, los algoritmos SSSP, como el algoritmo de Dijkstra, se ven limitados por el costo de ordenar los nodos
El tamaño ideal de una cola: guía para desarrolladores
Este artículo explora la pregunta crucial de cómo determinar el tamaño adecuado para una cola (queue) en sistemas de software, un tema que el autor ha reflexionado a lo largo de su carrera. Las colas son estructuras de datos fundamentales, especialmente útiles para compartir datos entre procesos o h
Arreglo 'Blanco y Negro': Nueva Estructura Acelera Procesos
Un nuevo desarrollo en la estructura de datos ha sido publicado en GitHub por el usuario Dronnix: el Black-White Array (BWArr). Esta estructura, basada en arreglos, ofrece mejoras significativas en rendimiento, especialmente en asignación de memoria (O(log N)) y operaciones de inserción, eliminación
Bubble Sort en Máquina de Turing: Ordenamiento Teórico Visualizado
Este proyecto presenta una implementación de la técnica de ordenamiento 'Bubble Sort' (ordenamiento de burbuja) en una Máquina de Turing (MT), un modelo computacional teórico fundamental en la informática. La MT está definida mediante una tabla de transiciones en formato YAML, lo que la hace compati
