La euforia es un lenguaje de programación interpretado creado por Roberto Craig del software rápido del despliegue.
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.
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
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}
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. $
.
| Random links: | El Damned | Co-CreateLinux | Amatista (color) | Gregor Zallwein | Parque del cielo de Santa Cruz |