F-Script (lenguaje de programación)


F-Script es un lenguaje de programación de scripting orientado a objetos para el sistema operativo macOS de Apple desarrollado por Philippe Mougin. F-Script es un lenguaje interactivo basado en Smalltalk , que utiliza la API Cocoa nativa de macOS .

F-Script se basa en un paradigma de objeto puro: cada entidad manipulada dentro del lenguaje es un objeto. Su sintaxis y conceptos básicos son idénticos a los del lenguaje Smalltalk (el ejemplo canónico de un lenguaje orientado a objetos) con extensiones específicas para soportar la programación de matrices como en el lenguaje APL .

F-Script proporciona un entorno interactivo interpretado con soporte para espacios de trabajo , que proporcionan un rico conjunto de funciones que incluyen persistencia de objetos , objetos distribuidos , marco de interfaz gráfica de usuario (GUI), acceso a bases de datos , entre otras cosas.

Al igual que Smalltalk, la sintaxis de F-Script es muy simple, sin requerir una notación específica para las estructuras de control que se proporcionan de manera unificada por la message sendoperación. A diferencia de Smalltalk, F-Script proporciona extensiones de notación específicas para respaldar la Arrayclase, utilizando corchetes para describir matrices literales, que pueden contener cualquier expresión de F-Script.

Por ejemplo, {1+3, 'name', true}es un literal de matriz válido . La matriz vacía se denota por {}. Las matrices de matrices se admiten de forma transparente, ya que cualquier matriz es simplemente otro objeto.

Las expresiones de mensaje en F-Script son similares a las de Smalltalk: especifican qué objeto es el receptor del mensaje, qué operación es llamada por el mensaje y cualquier objeto de argumento que necesita la operación. F-Script admite mensajes unarios, binarios y de palabras clave. La semántica de mensajes de F-Script se amplía para admitir la programación de matrices al reconocer que una operación de matriz, como sumar a vectores numéricos, debe verse como una generación de mensajes que relacionan los elementos de los vectores involucrados