¿Lenguajes de programación? No. Los lenguajes de programación tienen que funcionar bien en una amplia variedad de casos, y la mayoría de las veces la compresión de datos no vale la pena. Los datos almacenados en la RAM están ahí para ser * utilizados *, y es mucho más fácil usarlos directamente que descomprimirlos, hacer un cálculo y comprimirlos nuevamente.
Sin embargo, hay estructuras de datos particulares que * están * comprimidas. ¡El truco es que podemos comprimir datos de una manera con la que aún podemos trabajar! A veces, realmente podemos tener nuestro pastel y comerlo también. Hay un campo completo (bueno, algo así como un subcampo de un subcampo, pero, ya sabes …) llamado estructuras de datos sucintas (en Wikipedia). El objetivo es desarrollar estructuras que estén comprimidas en la memoria pero que aún permitan que ciertas operaciones se realicen rápidamente sin descomprimir los datos.
Algunos ejemplos interesantes son RRR: un índice de clasificación / selección sucinto para vectores de bits y árboles de ondículas; Ambas publicaciones de Alex Bowe son bastante accesibles. También hay un buen artículo sobre la implementación de árboles wavelet en JavaScript: unir 80,000 palabras en un archivo JavaScript.
- ¿Puedo cambiar la RAM en cualquier momento?
- ¿Hay algún lenguaje de programación que comprima sus datos cuando se almacenan en la RAM?
- En general, ¿cuánta RAM utilizable debería obtener si agrego 4 gb de RAM en una computadora portátil que ya tiene 2 gb de RAM?
- ¿Cuál es la diferencia entre RAM y ROM en un teléfono?
- ¿Cuál es el último teléfono inteligente de 3 GB?
Aquí está la charla que me presentó al campo; si tienes tiempo, es muy interesante ver: estructuras de datos sucintas de Edward Kmett.