Saltar al contenido

¿Por qué usar un lenguaje orientado a la pila?

Necesitamos tu ayuda para compartir nuestros ensayos sobre las ciencias informáticas.

Solución:

La orientación de la pila es un detalle de implementación. Por ejemplo, Joy se puede implementar mediante la reescritura, sin pila. Por eso algunos prefieren decir “concatenativo” o “composicional”. Con citas y combinadores puedes codificar sin pensar en la pila.

Expresarse con pura composición y sin locales ni argumentos nominales es la key. Es extremadamente sucinto sin sobrecarga sintáctica. La composición hace que sea muy fácil eliminar la redundancia y manipular “algebraicamente” su código; reduciéndola a su esencia.

Una vez que te hayas enamorado de este estilo sin puntos, te molestará incluso la más mínima sintaxis de composición en otros idiomas (aunque solo sea un punto). En los lenguajes concatenados, el espacio en blanco es el operador de composición.

No estoy seguro de si esto responderá a su pregunta, pero encontrará que Factor se describe a sí mismo como un lenguaje concatenativo ante todo. Simplemente sucede que también tiene un modelo de ejecución basado en pilas. Desafortunadamente, no puedo encontrar la publicación de blog de Slava (¿o tal vez en Factor Wiki?) Hablando de esto.

El modelo concatenativo básicamente significa que pasas “trozos de código” (bueno, así es como se programa de todos modos) y la composición parece una concatenación. Las operaciones como curry también son fáciles de expresar en un lenguaje basado en pilas, ya que solo se componen previamente con un código que agrega una cosa a la pila. En Factor, al menos, esto se expresa a través de una palabra llamada curry. Esto hace que sea mucho más fácil hacer una programación de orden superior, y el mapeo de secuencias finalmente se convierte en la “forma obvia de hacerlo”. Vengo de Lisp y me sorprendió volver después de programar en Factor por un tiempo que no podías hacer “cosas obvias” como bi en Lisp. Realmente cambia la forma en que expresas las cosas.

Por cierto, es aconsejable no obsesionarse demasiado con todo el asunto de la manipulación de la pila. Utilizando el locals vocabulario (descrito aquí: http://docs.factorcode.org/content/article-locals.html), no tiene que preocuparse por mezclar las cosas. A menudo hay una forma ordenada de expresar cosas sin variables locales, pero tiendo a hacerlo en segundo lugar.

Una de las razones importantes por las que se están desarrollando lenguajes basados ​​en pilas es porque el minimalismo de su semántica permite una implementación sencilla del intérprete y el compilador, así como también la optimización.

Entonces, una de las ventajas prácticas de dicho paradigma es que permite a los entusiastas construir fácilmente cosas y paradigmas más complejos sobre ellos.

El lenguaje de programación Scheme es otro ejemplo de eso: sintaxis y semántica minimalistas, implementación sencilla y mucha diversión.

valoraciones y comentarios

Si te animas, tienes la libertad de dejar un tutorial acerca de qué le añadirías a este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *