📑 Table of Contents

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

editar

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.

Referencias

editar
  • Diggins, Christopher (2008). «Simple Type Inference for Higher-Order Stack-Oriented Languages». PDF.
  • Herzberg, Dominikus; Reichert, Tim (2009). «Concatenative Programming: An Overlooked Paradigm in Functional Programming». PDF.
  • Pestov, Slava. «Slava Pestov's corner of the web». Web.
  • «Concatenative.org wiki: Factor/Implementation History». Web.
  • Pestov, Sviatoslav; Ehrenberg, Daniel (2010). "Factor: a dynamic stack-based programming language". SIGPLAN Not. ACM. 45 (12): 43–58.
  • Pestov, Slava. «Factor documentation: UI framework». Web.
  • Coleman, Doug. «Factor documentation: Database library». Web.
  • Pestov, Slava. «Factor documentation: HTTP server». Web.
  • Pestov, Slava. «Factor documentation: Specialized arrays». Web.
  • Coleman, Doug; Ehrenberg, Daniel. «Factor documentation: Regular expressions». Web.
  • Pestov, Slava. «Overhauling Factor's C library interface». Web.
  • Pestov, Slava. «Factor's bootstrap process explained». Web.
  • Pestov, Slava. «On shaking trees». Web.
  • Ehrenberg, Daniel (2010). «Closure elimination as constant propagation». PDF.

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

Paradigma de programación

(ALGOritmic Language) - enfocado a ser un lenguaje apropiado para definir algoritmos, también puede servir de lenguaje matemático. PL/I (Programing Language One)

Michael Abrash

publicados en su libro de 1989, Power Graphics Programming. Su segundo libro, Zen of Assembly Language (1990), se enfoca en escribir eficientemente código

Convenciones de programación

Conventions for the Java Programming Language (Not actively maintained. Latest version: 1999-APR-20.) Java: GeoSoft's Java Programming Style Guidelines Java:

Caml

Caml (Originalmente un acrónimo para Categorical Abstract Machine Language, en español Lenguaje Máquina Abstracto Categórico) es un dialecto de la familia

Lenguaje ensamblador

Peter Norton's Assembly Language Book for the IBM PC, Brady Books, NY: 1986. Michael Singer, PDP-11. Assembler Language Programming and Machine Organization

Historia de los lenguajes de programación

of Programming Languages, Addison Wesley, 1996. History and evolution of programming languages. Graph of programming language history Datos: Q1068652

C (lenguaje de programación)

estandarización del lenguaje de programación C Datos: Q15777 Multimedia: C (programming language) / Q15777 Libros y manuales: Programación en C Recursos didácticos:

Java (lenguaje de programación)

«Programming Language Español». 2020. Archivado desde el original el 16 de enero de 2025. Consultado el 16 de enero de 2026/5.  «TIOBE Programming Community