La euforia es un lenguaje de programación interpretado creado por Roberto Craig del software rápido del despliegue.

Introducción

Convertido como un proyecto personal para inventar un lenguaje de programación del rasguño, primera encarnación de la euforia fue creado por Roberto Craig en un Mega-ST de Atari. Ha nombrado a Euforia como siglas para el " Usuario final que programa con los objetos jerárquicos para Applications" interpretado robusto;, aunque haya una cierta suspicacia que esto es de hecho un Backronym . La primera encarnación pública de la lengua estaba para la plataforma de 32 bits del DOS y fue lanzada en el julio de 1993 . La versión original de Atari, hasta la fecha, no se ha lanzado. En fecha el lanzamiento de la versión 3.0 ( el 17 de octubre, el 2006 ), es la fuente abierta .

Fue desarrollado con las metas siguientes del diseño:

más fácil aprender y utilizar que BASIC y con las construcciones de alto nivel más-constantes
Para utilizar memoria de 32 bits de la plano-forma para evitar la gerencia de memoria complicada y clasificar/que tratan límites
Ayuda de la eliminación de errores y error-dirección run-time
Subíndice y tipo comprobación
El mecanografiar variable flojo y terminante
Programación orientada al objeto vía objetos como tipos, definidos por el usario o de otra manera
Interpretado, con la gerencia de memoria y la colección de basura automáticas

Con el lanzamiento de la versión 2.5 el intérprete de la euforia estuvo partido en dos secciones: el programa de análisis anticipado y el intérprete final. La fuente anticipada, abierta, ahora se escribe en euforia en vez de la C. El anticipado también se utiliza con Euforia--c al traductor y a la carpeta.

Características


La colección heterogénea del

mecanografía (las secuencias)
Biblioteca de los gráficos del DOS
Depuración
Sistema de base de datos
Dirección baja de la memoria
Ayuda de Windows API
Cgi que programa

Modos de la ejecución

Intérprete
Traductor C (E2C) para los executables o el independientes de lazo dinámico
Recopilador e intérprete (Shrouder) de Bytecode
La carpeta ata el código fuente de la euforia al intérprete para crear un ejecutable.

Uso

La euforia fue utilizada sobre todo por los aficionados a los hobbys para el juego de ordenador de la utilidad y que programaba, pero ha probado útil para los propósitos bastante diversos. La fuerza primaria parece ser la facilidad de manejar recogidas de datos dinámicas de varios tipos, más útiles al ocuparse del proceso de secuencia y del tratamiento de la imagen, que pueden ser absolutamente difíciles en muchas idiomas. Se ha utilizado en los experimentos de la inteligencia artificial, el estudio de las matemáticas, para la programación de enseñanza, y ejecutar las fuentes que implicaban millares de carácteres. También, la euforia se ha demostrado ser un lenguaje de programación útil del cgi : la búsqueda del archivo del archivo se escribe en euforia, por ejemplo.

Tipos de datos

La euforia tiene dos tipos de datos básicos: ; átomo: Éstos son números, ejecutados como el número entero de 31 pedacitos o 64-bit IEEE flotante, dependiendo del valor actual. La euforia cambia dinámicamente la puesta en práctica la más eficiente para el valor actual del artículo de datos. ; secuencia: El Vectors que pueda tener cero o más elemento; cada elemento es un átomo o una secuencia . El número de elementos en una secuencia no es fijo; el codificador puede agregar o quitar elementos como sea necesario durante run-time. La euforia maneja automáticamente la asignación y la desasignación del RAM, y la colección de basura automática para usted. Los elementos individuales se refieren usar un valor de índice incluido en corchetes. El primer elemento en una secuencia tiene un índice de uno. Las secuencias encajadas interior de los elementos son referidas por valores de índice bracked adicionales, así X [2] refiere al segundo elemento contenido en la secuencia que es el tercer elemento del X.

Además, la euforia tiene dos tipos de datos especializados de : ; número entero: Una forma especial del átomo, restringida a 31 valores del número entero del pedacito en la gama -1073741824 a 1073741823. Los tipos de datos del número entero son más eficientes que los tipos de datos del átomo, pero no pueden contener la misma gama de valores. Los carácteres se almacenan como números enteros, eg. ASCII de la codificación - “A” es exactamente igual que la codificación 65. ; objeto: Un datatype genérico que puede contener antedicho un de los, y se puede cambiar durante run-time. Esto significa que si usted tiene un objeto llamado X que se asigne el valor 3.172, después después usted puede asignarle el " del valor; ABC". Observar eso de hecho, cada elemento de una secuencia es realmente un objeto .

No hay tipo de datos de la secuencia del carácter, como éstos son representados por una secuencia de valores del número entero . Sin embargo, porque las secuencias literales son tan de uso general en la programación, la euforia interpreta doble-cotiza carácteres incluidos como secuencia de números enteros. Así " ABC" se ve como si el codificador hubiera escrito: {“A”, “B”, “C”} cuál es igual que: {65.67}

Hola mundo

pone (1, " ¡Hola mundo! \ n")

Ejemplos

Nota del : Comienzo de los comentarios del código de con un " doble de la rociada; --" y pasar a través del extremo de la línea. No hay comentarios multilínea.

Como breves ejemplos, el código siguiente

delete_item global de la función (objeto viejo, grupo de la secuencia) posición del número entero -- Cifrar comienza -- posición = hallazgo (viejo, grupo) si posición > 0 entonces grupo = grupo. longitud (grupo) terminar si volver a grupo terminar la función

busca un viejo artículo en un grupo de artículos. Si está encontrado, lo quita concatenando todos los elementos antes de él con todos los elementos después de él. El resultado entonces se vuelve. Observar que los elementos en secuencias son 1 basado puesto en un índice. Esto significa que el primer elemento tiene un índice de 1.

La simplicidad es evidente en que el código delinea claramente sus construcciones con palabras. En vez de apoyos, los puntos y comas, y los signos de interrogación, usted ve frases como “si.then”, “extremo si”, y “función del final”.

La flexibilidad está presente; el artículo “viejo” podía ser secuencias, números, imágenes, o las recogidas enteras de datos ellos mismos. Una diversa función para cada tipo de datos no es necesaria, ni el programador tiene que comprobar los tipos de datos. Esta función trabajará con cualquier secuencia de datos de cualquier tipo, y no requiere ninguna biblioteca externa.

replace_item global de la función (el objeto viejo, se opone grupo a nuevo, de la secuencia) posición del número entero -- Cifrar comienza -- posición = hallazgo (viejo, grupo) si posición > 0 entonces grupo = nuevo terminar si volver a grupo terminar la función

La seguridad es presente debido al hecho de que no hay indicadores implicados y los subíndices están comprobados automáticamente. Así la función no puede memoria de acceso out-of-bounds, y no puede ir más allá del extremo de la secuencia o antes del principio de ella para corromper la memoria. No hay necesidad de asignar o de desasignar explícitamente memoria, y ninguna ocasión de un escape.

La línea

group = grupo. longitud (grupo)

demuestra algunas de las facilidades de tramitación de la secuencia . Una secuencia puede contener una colección de cualesquiera tipos, y esto se puede rebanar (tomar un subconjunto de los datos en un ordenar ) y concatenar en expresiones, sin la necesidad de funciones especiales.5 introduce el nuevo símbolo de “$”, que se utiliza para el " longitud (secuencia). " Así pues, el ejemplo antedicho se podría escribir en 2.5 como sigue:

group = grupo. $

Paso de parámetro

Otra característica es que todas las discusiones a las rutinas son pasadas siempre por el valor. No hay facilidad de la pasar-por-referencia. Esto se ejecuta de una manera muy eficiente pues las secuencias hacen automáticamente que el Copia-en-escriba la semántica de . Es decir cuando usted pasa una secuencia a una rutina, solamente una referencia a ella pasó inicialmente pero en el punto que la rutina primero modifica un parámetro de la secuencia, se copia la secuencia y las actualizaciones de la rutina una copia de la original.

Idiomas comparables

Lenguaje de programación D
Lenguaje de programación de Lua
Lenguaje de programación del pitón
lenguaje de intercambio de datos y de programación de Rebol -
Boxx

.

  • Zenithic
  • S-alkylcysteine lyase
    Random links:El Damned | Co-CreateLinux | Amatista (color) | Gregor Zallwein | Parque del cielo de Santa Cruz

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">