Está en la página 1de 14

UNIVERSIDAD DE TARAPACA DE ARICA ESCUELA UNIVERSITARIA DE INGENIERIA INDUSTRIAL, INFORMATICA Y DE SISTEMAS.

AREA DE COMPUTACION

Primer Informe Lenguaje de Programacin


CLEAN

Integrantes: Angela Ossandon C. Alexis Beroiza R. Rubn Saavedra T. Claudio Olivares C. Profesor: Ricardo Valdivia P.

Asignatura: Fundamentos de lenguajes de Programacin

ndice pg.

Introduccin

Historia

Paradigma de computacin

Dominios de Aplicacin

Implementacin del Lenguaje de Programacin 11

Introduccin
En el presente informe nos referiremos mas detalladamente al lenguaje de programacin seleccionado por nuestro grupo para el proyecto de la asignatura Fundamentos de lenguajes de programacin, el cual es Clean. Clean es un lenguaje de programacin con el objetivo principal de ser un lenguaje funcional puro y perezoso diseado para realizar aplicaciones en el mundo real. Clean es el nico lenguaje funcional en el mundo que ofrece la singularidad de mecanografa. Este tipo de sistemas hace que sea posible en un lenguaje puramente funcional y hacer interfaces directos en el mundo exterior al imperativo, este tipo de sistema hace posible el desarrollo de aplicaciones eficientes. El sistema de Clean es un desarrollo de aplicaciones muchas plataformas (PC, (Windows 95/98/2000/NT, principales plataformas son sistema de desarrollo de software para el de Clean, este sistema esta disponible en Mac, SUN) y sistemas operativos como Linux, MacOS, Solaris). De las cuales las PC y Mac.

El sistema de Clean es un sistema de pleno derecho q puede ser utilizado en ambientes industriales, tambin el sistema Clean es un producto comercial de Hilt Herramientas de software de alto nivel BV, adems Clean se puede descargar de forma gratuita

Historia
En 1984 un grupo de investigacin tecnolgica de software de la universidad de Radboud en Nijmegen Holanda, trabaja sobre lenguaje funcional y lo llamaron Clean. Clean al ser fuertemente tipado se basa en algunas extensiones de la conocida Milner / Hindley / Mycroft tipo de inferencia / rgimen de control (Milber 1978); (Hindley 1969); (Microft 1983) incluido el comn de orden superior de tipos, tipos polimrficos, tipos algebraicos, tipos de sinnimos y tipos existencialmente cuantificados, tambin Clean a sido influenciado por Lean y Haskell, Pero principalmente es basado en el tipo de inferencia y comprobacin de Scheme de ah que se puede deducir su origen con ms exactitud el cual se representa en la siguiente lnea de tiempo:

Desde entonces Clean fue evolucionando y perfeccionndose en diferentes versiones las cuales son: Clean v1.0: el anuncio de esta versin fue realizado para diferentes tipos de plataformas, la primera de ellas fue Macintosh en mayo de 1995, Macintosh y PC(OS/2) en Junio de 1995, Macintosh (Motorola), PC(OS/2), PC (Linux) y Sun4 (SunOS) en septiembre de 1995 y Sun4 (Solaris) en Octubre de 1995. Clean v1.1: Tambin esta versin fue realizada para diferentes tipos de plataformas, primero fue Macintosh en marzo de 1996, el

lanzamiento para Mac/68k, Sun / SunOS, Sun / Solaris Y PC / Linux fue realizado en Agosto de 1996, Clean v1.2: Esta versin esta disponible para las plataformas Mac y PowerMac en enero de 1997, este sistema viene en tres versiones: CLEAN12.68k.sea.hqx: Clean 1,2 por 68k Mac. CLEAN12.ppc.sea.hqx: CLEAN 1,2 para PowerMacs. CLEAN12.both.sea.hqx: CLEAN 1,2 por 68k y PowerMacs.

No obstante podemos destacar la versin Clean 1.2.3 ya que fue la primera versin disponible para Windows95 Clean v1.3: Una nueva versin (la 1.3) est ahora disponible para Windows95/NT, Mac, Linux y Solaris al mismo tiempo. Las nuevas caractersticas incluyen: Tiempo profiler (PowerMac y Windows), el espacio profiler (PowerMac), el 22 de mayo de 1998. Las ltimas versiones disponibles son 1.3.1 para Solaris, Linux ELF y MkLinux el 11 de enero de 1999. Seguida por Clean 1.3.1 para Windows 96/98/NT y PowerMac el 20 de enero de 1999. Clean v2.0: se libera para la plataforma Windows el 21 de diciembre de 2001. Incluye una herramienta de prueba dedicada a los programas de Clean, la dinmica y la vinculacin a escribir, y muchas nuevas caractersticas de lenguaje.

Clean 2.0.1 se libera para PC, PowerMac, Linux y Solaris el 4 de julio de 2002. Incluye una herramienta de prueba dedicada a los programas de Limpieza (Destello), la dinmica y la vinculacin a escribir, y muchas nuevas caractersticas de lenguaje. Clean v2.1: Clean 2.1.0 es liberado para Windows, MacOS X, Linux y Solaris el 31 de octubre de 2003. Las principales nuevas caractersticas son: resumen sinnimo tipos, caja de registros, desbordamiento de pila sin controles generales, optimizaciones del cdigo, la optimizacin de enlaces para Linux y Solaris, MacOS X apoyo a Objeto de E / S 1,2. y el IDE, dirigir la generacin de cdigo en Solaris, la versin para Linux que bootstraps ABC de archivos, importantes mejoras en la dinmica de aplicacin en Windows.

Paradigma de computacin
El lenguaje de programacin funcional Clean Un lenguaje de programacin funcional como Clean se basa en el concepto de funciones matemticas. Clean es un lenguaje funcional puro, no hay tal cosa como una cesin. Esto tiene una gran ventaja: una funcin no puede tener un efecto secundario. A Clean funcin referencial es transparente: el resultado de una funcin slo depende del valor de la funcin de argumentos y en nada ms. Esto tiene importantes consecuencias: Una vez que la funcin es de trabajo, siempre trabajo. Una funcin siempre reaccionan de la misma manera, sin tener en cuenta cundo y en qu contexto se usa esta funcin; Una razn puede ser Clean sobre las funciones y la limpieza del

programa en su conjunto (que es una funcin de aplicacin) mediante el uso tradicional de razonamiento matemtico: la sustitucin de uniformes y de induccin matemtica. Para hacer el mundo real las necesidades de un curso para poder actualizar una base de datos, realizar I / O, actualizar una serie destructiva, pasar un mensaje a otro programa. Y, la solicitud deber ejecutar de manera eficiente suficiente. Aunque Clean no tiene asignaciones, los objetos se pueden actualizar destructivamente. Clean es el nico lenguaje funcional en el mundo que tiene un sistema de tipo especial, singularidad a escribir. Este tipo de sistema se desarrolla en Nijmegen. Permite actualizar los argumentos y conservar la pureza de la lengua.

Clean es pura o meramente funcional, en informtica este termino es utilizado para describir algoritmos, estructuras de datos o los lenguajes de programacin la propiedad puramente funcional de las estructuras de datos puede ser ventajosa en el desarrollo de muchas aplicaciones que ocupan de mltiples versiones de un objeto, adems Clean es el nico lenguaje funcional en el mundo que ofrece la singularidad de mecanografa, esto hace posible que sea un lenguaje puramente funcional para incorporar las actualizaciones de destruccin arbitraria de estructuras de datos (incluyendo arreglos)

Dominios de Aplicacin
Para las personas q estn familiarizadas con otros lenguajes funcionales, como Haskell, damos aqu una breve lista de las caractersticas: Clean es un perezoso, lenguaje funcional puro de programacin de orden superior, con grfica explcita y semntica que permite la reescritura; se puede definir explcitamente el intercambio de estructuras (estructuras cclicas tambin) en el lenguaje; Aunque Clean es por defecto un lenguaje vago se puede convertir en un lenguaje estricto para obtener ptimos comportamientos en tiempo / espacio: las funciones se pueden definir fcilmente, as

como en sus argumentos pueden ser ms estrictos, como tambin sus estructuras. Debido a ser fuertemente tipado de Clean est en la obligacin de inicializar todos los objetos que se estn creando. En tiempo de ejecucin los errores slo pueden producirse en un nmero muy limitado de casos: cuando parcialmente las funciones se llaman con argumentos fuera de su dominio (por ejemplo, dividir por cero), cuando los arreglos se les accede con ndices fuera de rango y cuando no hay suficiente memoria (heap o bien el espacio de pila) que se asigna a una aplicacin Clean; Tipo clases y el tipo constructor se prestan a hacer uso de la sobrecarga de funciones y operadores. Clean ofrece los siguientes tipos predefinidos: enteros, reales, booleanas, caracteres, cadenas de texto, listas, tuplas, registros, (actualizable destructiva) y arreglo de archivos; Se puede definir funciones en el mbito local, utilizando los bloques. la caracterstica clave de Clean es su singularidad de tipo polimrfico, sistema de inferencia, una extensin de la Milner / Hindley / Mycroft tipo de inferencia / sistema de control que permite un refinado control sobre el uso nico de los objetos, con la singularidad de este tipo de sistema se puede influir en el tiempo y el espacio en que se comportan los programas, puede utilizarse para incorporar las actualizaciones destructivas de objetos dentro de un marco funcional puro, permite la transformacin destructiva de informacin de estado, que permite la interconexin eficiente a los mundos no funcionales (en C, sino tambin para I / O como los sistemas X - Windows) que ofrece acceso directo a sistemas de ficheros y sistemas operativos; Clean es un lenguaje modular que permite la compilacin separada de mdulos, uno define los mdulos de aplicacin y la definicin de mdulos; hay una instalacin de forma implcita y explcitamente de las definiciones de importacin de otros mdulos; Clean ofrece una sofisticada biblioteca E / S con el que la ventana interactiva basada en las aplicaciones (y la manipulacin de mens, dilogos, ventanas, ratn, teclado, temporizadores y

eventos planteadas por sub-aplicaciones) puede especificarse compacto y elegante en un nivel muy alto de la abstraccin; GUI basado en programas escritos en Clean utilizando el v0,8 biblioteca E / S puede ser portado sin modificacin de cdigo fuente para cualquiera de las muchas plataformas. Clean tambin se destaca por sus diversos tipos de aplicaciones las cuales son: Su entorno de desarrollo integrado:
o

Clean es un sistema simple y estable que viene con un programa dedicado Desarrollo Integrado de Medio Ambiente, el Clean IDE. El IDE es el ncleo del Sistema de Clean que forma la interfaz para el programador. Se trata de un dedicado editor y gerente del proyecto que permite a un programador generar y poner en marcha una aplicacin con slo pulsar un botn.

o Desarrolle su propia plataforma de juegos El nuevo Clean Objeto de E / S 1,2 Biblioteca viene con soporte para la creacin de su propia plataforma 2D-juegos. La extensin de construir juegos ha sido desarrollado por Mike Wiering durante su Magster, era su proyecto de tesis. Un documento sobre este proyecto ha aparecido en las seleccionadas Actas del Taller IFL'99. La biblioteca para crear juegos es la 1.2.1 Biblioteca de Juegos.

Se puede crear juegos completos en tan slo una fraccin del tiempo que tomar mediante la utilizacin de un lenguaje tradicional. Por ejemplo, el Sinterklaas juego contiene menos de 3000 lneas de cdigo limpio.

Hay unos nuevos fines especiales programa de dibujo, un Tile Editor. Con el Editor de baldosa se puede hacer baldosas que puede ser usado para hacer los sprites (imgenes), animaciones y las capas de fondo.

Implementacin del Lenguaje de Programacin

Analizando e investigando nuestro lenguaje de programacin Clean podemos determinar basndonos en los apuntes del curso y la pgina principal de nuestro lenguaje http://clean.cs.ru.nl/About_Clean/about_clean.html Podemos determinar que su categora de traduccin es Compilado, este tipo de lenguaje existe una traduccin (Compilador) a lenguaje de maquina previa a la ejecucin. Clean entra en la categora de lenguajes compilados ya que crea un archivo ejecutable para poder ejecutar el programa, pero para llegar a la creacin de este archivo ejecutable en clean se deben realizar una serie de pasos previos. Una de las caractersticas de Clean es como funciona debido al clculo grafico se basa en la reescritura y la reduccin constante, como son los nmeros de los grficos. Esto, combinado con la compilacin de cdigo nativo, hace que Clean genere programas relativamente regidos, incluso con alta abstraccin. Esto se realiza de la siguiente forma 1. Un archivo fuente (.lcl) y un archivo de proyecto (.Dcl) se convierten en la plataforma independiente de limpieza del Bytecode (.Abc), implementado en C y Clean. 2. El Bytecode se convierte a cdigo objeto (.Obj) usando C. 3. El cdigo objeto esta relacionado con oros archivos en el modulo de tiempo de ejecucin y el sistema y es convertido en un ejecutable normal de Clean