Lenguaje Factor
# Lenguaje Factor

Factor es un lenguaje de programación orientado a pila creado por Slava Pestov. Factor es de tipado dinámico y administración de memoria automática, como poderosas características de meta programación. El lenguaje tiene presentando una sola implementación de un self-hosted optimizando al compilador y un entorno de desarrollo interactivo. La distribución Factor incluye una larga librería estándar.

## Historia

Slava Pestov inventó Factor en 2003 como un lenguaje de archivos de órdenes para un videojuego. La implementación inicial ahora nos referimos a él como JFactor, fue implementada en java y corrida sobre la máquina virtual de java. No obstante, el primer lenguaje moderno reensamblado Factor superficialmente en términos de sintaxis, el lenguaje moderno es muy diferente en términos prácticos y actual implementación es mucho más rápida.

El lenguaje ha cambiado significativamente con el tiempo originalmente, los programas Factor centrado sobre la manipulación de los objetos java con capacidades de reflexión java. Desde el comienzo, la filosofía de diseño ha sido modificada el lenguaje ha recreado programas escritos en este. Tanto como implementación y las librerías estándares se convirtió en más detallado, la necesidad para ciertas características del lenguaje se aclaró, y ellas fueron añadidas. JFactor no tuvo un sistema de objetos donde tu podrías definir tus propias clases, y versiones de antes de Factor nativo fueron el mismo; el lenguaje fue similar a Scheme en esta manera. Hoy, el sistema de objetos es una parte central de Factor. Otras importantes características del lenguaje tales como clases tuple, combinator inlining, macros, user-defined parsing de palabras y el moderno sistema vocabulario fue solamente añadido in una moda fraccionada como su utilidad se aclaró.

la interfaz de funciones foráneas fue presentada en versiones bastante antes a Factor, y sistema análogo existió en JFactor. Esto fue escogido sobre crear un plugin para la parte C de la implementación para cada librería externa con la que el Factor debería comunicar, y tiene el beneficio de comenzar más declarativo, más rápido compilar y más fácil escribir.

La implementación Java inicialmente consistió de un intérprete, pero un compilador a Java bytecode fue más tarde añadido. El compilador solamente trabajaba sobre ciertos procedimientos. La versión Java de Factor fue reemplazada por una versión escrita en C y Factor. Inicialmente, esto consistió de un intérprete, pero el intérprete fue reemplazado por dos compiladores, usados en diferentes situaciones. Con el tiempo, la implementación de Factor ha crecido significativamente más rápido.

