El campo común del balbucea, CL comúnmente abreviado, es un dialecto balbucea el lenguaje de programación del, publicado en ANSI X3. Convertido para estandardizar las variantes divergentes de balbucear que lo precedieron, él no es una puesta en práctica sino algo una especificación de la lengua. Varias puestas en práctica del campo común balbucean estándar están disponibles, incluyendo los productos comerciales y el software libre .

El campo común balbucea es un multiparadigma, lenguaje de programación de fines generales eso:

apoya una combinación imprescindible, funcional y de paradigmas programados orientados al objeto .
Está un lenguaje el de programación dinámico que facilita el desarrollo rápido, con la compilación iterativa en programas run-time eficientes.
Incluye el CLOS, un sistema del objeto que apoye el Multimethods y las combinaciones del método
Son extensibles a través de características estándar por ejemplo balbucean las macros (cambio de tiempo de compilación del código logrado por el programa sí mismo) y las macros del lector (extensión del sintaxis para dar el significado especial a los carácteres reservados para los usuarios con este fin).

Sintaxis

El campo común balbucea es un dialecto de balbucea; utiliza las S-expresiones para denotar código y la estructura de datos. La función y las macro-instrucciones se escriben como listas, con el nombre de la función primero, como en estos ejemplos:

lang=" del (+ 2 2); agrega 2 y 2, rindiendo 4. lang=" del (setf p 3.1415); fija el igual variable de p a 3.1415 ; nota: " pi" es un constante incorporado - no puede el setf él lang=" del ; ; Definir una función que ajuste un número: (defun (x) cuadrado (* x x)) lang=" del ; ; Ejecutar la función: (cuadrado 3); Vueltas 9 ¡ lang=" del ; ; construcción - las variables que existen solamente en “dejan” el bloque, así que usted puede dar fácilmente nuevo ; ; valores a cuaesquiera variables existentes sin el cambio de ellas. Los viejos valores se restauran después ; ; el extremo del bloque. (dejar ((un 6) (b 4)) (+ un b)); vueltas 10

Tipos de datos

El campo común balbucea tiene una plétora de tipos de datos, más que muchas otras idiomas.

Tipos escalares

Los tipos del número del incluyen los números de coma flotante de los cocientes de los números enteros y el campo común de los números complejos balbucea Bignums de las aplicaciones para representar valores numéricos del tamaño y de la precisión arbitrarios. El tipo del cociente representa fracciones exactamente, una facilidad no disponible en muchas idiomas. El campo común balbucea fuerza automáticamente valores numéricos entre estos tipos como apropiados.

El campo común balbucea carácter que el tipo de no se limita a los carácteres ASCII -- poco sorprendente, como balbucean predates ASCII. Algunas puestas en práctica modernas permiten los carácteres de Unicode .

El tipo del símbolo es común balbucear las idiomas, pero exterior en gran parte desconocido ellas. Un símbolo es un único, nombrado objeto de datos con varias ranuras. De éstos, la célula del valor del y la célula de la función del son las más importantes. Los símbolos adentro balbucean son de uso frecuente semejantemente a los identificadores en otras idiomas: para llevar a cabo valor de una variable; al menos hay muchas otras aplicaciones. Normalmente, cuando se evalúa un símbolo, se vuelve su valor. Algunos símbolos evalúan a sí mismos, por ejemplo todos los símbolos en paquete de la palabra clave uno mismo-están evaluando. Los valores boleanos en campo común balbucean son representados por los símbolos de uno mismo-evaluación T y la NADA.

Estructuras de datos

La secuencia del mecanografía adentro el campo común balbucea incluye listas, vectores, pedacito-vectores, y secuencias. Hay muchas operaciones que pueden trabajar en cualquier tipo de la secuencia.

Como en cualquier otra balbucean, las listas del que en campo común balbucean se componen de los conses del, a veces llamado las células del contra del o los pares del . El contra es una estructura de datos con dos ranuras, llamadas su coche del y los cdr del . Una lista es una cadena ligada de conses. Cada coche del contra refiere a un miembro de la lista (posiblemente otra lista). Cada cdr del contra refiere al contra siguiente -- a excepción del contra pasado, cuyo cdr refiere al valor de nil. Conses se puede también utilizar fácilmente para ejecutar árboles y otras estructuras de datos complejos; aunque se aconseja generalmente para utilizar la estructura o casos de la clase en lugar de otro.

El campo común balbucea los órdenes multidimensionales del de las ayudas, y puede volver a clasificar según el tamaño dinámicamente órdenes si procede. Las matrices multidimensionales se pueden utilizar para las matemáticas de la matriz. Un vector del es un arsenal unidimensional. Los órdenes pueden llevar cualquier tipo como miembros (incluso mezclados mecanografía adentro el mismo arsenal) o se pueden especializar para contener un tipo específico de miembros, como en un vector de números enteros. Muchas puestas en práctica pueden optimizar funciones del arsenal cuando el arsenal usado tipo-se especializa. Dos tipos tipo-especializados de arsenal son estándar: una secuencia del es un vector de carácteres, mientras que un pedacito-vector del es un vector de los pedacitos

asociaciones del almacén de las tablas de elección arbitraria 'entre los objetos de datos. Cualquier objeto se puede utilizar como llave o valor. Las tablas de elección arbitraria, como órdenes, se vuelven a clasificar según el tamaño automáticamente según lo necesitado.

El de los paquetes de es colecciones de símbolos, usadas principalmente para separar las partes de un programa en los namespaces . Un paquete puede de la exportación de algunos símbolos, marcándolos como parte de un interfaz público.

estructura el, funcionando similar a los structs C y los expedientes de Pascal, representa las estructuras de datos complejos arbitrarias con cualquier número y tipo de campos (llamados ranura el ).

El de los casos de la clase es similar a las estructuras, pero creado por el sistema del objeto, el CLOS .

Funciones

El campo común balbucea las funciones de primera clase de las ayudas por ejemplo, es posible escribir las funciones que toman otras funciones como discusiones o funciona la vuelta también. Esto permite describir operaciones muy generales.

El campo común balbucea biblioteca confía pesadamente en tales funciones higher-order. Por ejemplo, la función de sort toma a el operador emparentado como discusión. Esto se puede utilizar no sólo para clasificar cualquier tipo de datos, pero también para clasificar las estructuras de datos según una llave.

lang=" del (clase (lista 5 2 6 3 1 4) # ' >) ; Clasifica la lista usar > función como el operador emparentado. ; Vueltas (6 5 4 3 2 1). lang=" del (clase (lista “(9 A)” (3 B) '(4 C)) # ' <: llave # ' coche) ; Clasifica la lista según el primer elemento (coche) de cada sublista. ; Vueltas ((3 B) (4 C) (9 A)).

El modelo de la evaluación para las funciones es muy simple. Cuando el evaluador encuentra un de la forma (F A1 A2…) entonces es asumir que el símbolo nombrado F es uno del siguiente:

  • especial del operador del

    A (comprobado fácilmente contra una lista fija) Un

  • macro del operador (debe haber sido definido previamente) El nombre de una función (defecto), que puede ser un símbolo, o un principio de la secundario-forma con el símbolo lambda.

    Si F es el nombre de una función, después las discusiones A1, A2,…, se evalúan en orden de izquierda a derecha, y la función se encuentra y se invoca con esos valores suministrados como parámetros.

    Definición de funciones

    La macro defun define funciones. Una definición de función da el nombre de la función, de los nombres de cualquier discusión, y de un cuerpo de la función:

    lang=" del (defun (x) cuadrado (* x x))

    Las definiciones de función pueden incluir las declaraciones del, que proporcionan indirectas al recopilador sobre ajustes de la optimización o los tipos de datos de discusiones. Pueden también incluir las secuencias (docstrings) de la documentación del, que el sistema del balbuceo puede utilizar para proporcionar la documentación interactiva:

    lang=" del (defun (x) cuadrado " Calcula el cuadrado del número x." (declarar (el número x) (optimizar (la velocidad 3) (eliminar errores de 0) (seguridad 1))) (* x x))

    Funciones anónimas (los literales de la función se definen usar las expresiones de lambda, e. (lambda  (x)  (*  x  x)) para una función que ajusta su discusión. Balbucea el estilo programado utiliza con frecuencia las funciones higher-order que que es útil proporcionen funciones anónimas como discusiones.

    Hay un número de otros operadores relacionados con la definición y la manipulación de funciones. Por ejemplo, una función se puede recompiled con el operador de compile. (Algunos balbucean las funciones del funcionamiento de los sistemas en un intérprete por abandono a menos que estén dada instrucciones para compilar; otros compilan cada función incorporada en marcha.)

    El namespace de la función

    El namespace para los nombres de función está a parte del namespace para las variables de los datos. Esto es una diferencia dominante entre el campo común balbucea y el esquema . Los operadores que definen nombres en el namespace de la función incluyen defun, flet, y labels.

    Para pasar una función por nombre como discusión a otra función, una debe utilizar al operador especial de function, abreviado comúnmente como #'. El primer ejemplo de sort antedicho refiere a la función nombrada por el > del símbolo; en el namespace de la función, con el #'& GT del código; .

    El modelo de la evaluación de del esquema es más simple: hay solamente un namespace, y todas las posiciones en la forma se evalúan (en cualquie orden) -- no apenas las discusiones. El código escrito en un dialecto por lo tanto está confundiendo a veces a los programadores experimentados más en el otro. Por ejemplo, muchos programadores del CL tienen gusto de utilizar nombres variables descriptivos tales como lista del o secuencia del que podrían causar problemas en esquema pues localmente sombrearían nombres de función.

    Si es un namespace separado para las funciones una ventaja es una fuente de contención en la comunidad del balbuceo. Se refiere generalmente como el Lisp-1 contra Lisp-2 el discusión . Estos nombres fueron acuñados en un papel 1988 por el Richard P. Gabriel y el aserrador de foso de Kent, que compara extensivamente los dos acercamientos.

    Otros tipos

    Otros datos mecanografían adentro el campo común balbucean incluyen:
    las cadenas de caracteres del

    representan archivos y directorios en el sistema de ficheros . El campo común balbucea facilidad de la cadena de caracteres es más general que balbucean la mayoría de las convenciones de nombramiento del archivo de los sistemas operativos, haciendo el acceso de los programas al portable de los archivos amplio a través de sistemas diversos.
    Las corrientes del de entrada y de la salida representan fuentes y los fregaderos de datos binarios o textuales, tales como los archivos terminales o abiertos.
    El campo común balbucea tiene un generador incorporado (PRNG) del número pseudaleatorio. Los objetos al azar del estado del representan fuentes reutilizables de números pseudaleatorios, permitiendo que el usuario siembre el PRNG o lo haga jugar de nuevo una secuencia.
    Las condiciones del son el tipo usado para representar errores, las excepciones, y el otro " interesting" acontecimientos a los cuales un programa puede responder.
    Las clases del son los objetos de primera clase, y son ellos mismos citan como ejemplo de las clases llamadas Metaclasses .

  • Macros

    Una macro adentro balbucea se asemeja superficial a una función en uso. Sin embargo, algo que representando una expresión se evalúe que, representa una transformación del código fuente del programa.

    Las macros permiten balbucean los programadores para crear nuevas formas sintácticas en la lengua. Por ejemplo, esta macro proporciona la forma del lazo de until, que puede ser familiar de idiomas tales como Perl :

    lang=" del (defmacro hasta (cuerpo &body de la prueba) `(hacer () (, prueba) , @body))

    ; ; ejemplo (hasta (= (10) 0 al azar) (escribir-línea " Hello"))

    Todas las macros deben ser ampliadas antes de que el código fuente que las contiene se pueda evaluar o compilar normalmente. Las macros se pueden considerar funciones eso aceptar y volver los árboles de abstract syntax (balbucean las S-expresiones). Estas funciones se invocan antes del evaluador o del recopilador para producir el código fuente final. Las macros se escriben en campo común del normal balbucean, y pueden utilizar el campo común balbucean (o) operador de tercera persona disponible. La notación del backquote usada arriba se proporciona por el campo común balbucear específicamente para simplificar el caso común de la substitución en una plantilla del código.

    Captura y el sombrear variables

    El campo común balbucea las macros es capaz de la captura variable del, donde los símbolos en el cuerpo de la expansión de macro coinciden con ésos en el contexto de llamada, permitiendo que el programador cree macros en donde los varios símbolos tienen significado especial.

    La captura variable del puede introducir errores inesperados e inusuales. Algunos balbucean los sistemas, tales como esquema, evitan captura variable usando el &mdash macro del sintaxis; " supuesto; macros" higiénico; — eso no lo permite. En campo común balbucea, uno puede evitar generalmente captura indeseada usando los símbolos garantizar-únicos de Gensyms que se pueden utilizar en una expansión de macro sin la amenaza de la captura.

    El otro tema es el sombrear inadvertido del de los operadores usados en una expansión de macro. Por ejemplo, considerar el código (incorrecto) siguiente:

    lang=" del (macrolet ((hacer (.)… el algo más…)) (hasta (= (10) 0 al azar) (escribir-línea " Hello")))

    La macro de UNTIL se ampliará en una forma que llame DO que se piense para referir a la macro incorporada DO. Sin embargo, en este contexto, DO puede tener un significado totalmente diverso.

    El campo común balbucea mejora el problema del operador que sombrea prohibiendo la redefinición de operadores incorporados, tales como DO en este ejemplo. Por otra parte, los usuarios pueden separar su propio código en los paquetes del . Los símbolos incorporados se encuentran en el paquete de COMMON-LISP, que no será sombreado por un símbolo en un paquete del usuario.

    El campo común balbucea sistema del objeto

    considera también: El campo común balbucea

    l sistema del objeto

    El campo común balbucea incluye un juego de herramientas para la programación orientada al objeto, el campo común balbucea el sistema o el CLOS del objeto, que son uno de los sistemas más de gran alcance del objeto disponibles en cualquier lengua. Propuesto original como agregación, CLOS fue adoptado como parte del ANSI que balbucea el estándar para el campo común. CLOS es un sistema dinámico del objeto con el envío múltiple y la herencia múltiple, y diferencia radical de las instalaciones de OOP encontradas en idiomas estáticas tales como C++ o Java .

    La comparación con otra balbucea

    ¡ El campo común balbucea lo más frecuentemente se compara con, y se pone en contraste, al &mdash del esquema ; si solamente porque son balbucean los dos más populares los dialectos. El esquema precede el CL, y viene no sólo iguales balbucea tradición pero de algo del mismo individuo de los ingenieros que balbucea el L. Steele, con el cual el Gerald Jay Sussman diseñó esquema, presidió a comité de estándares para el campo común.

    El campo común balbucea es un lenguaje de programación de fines generales, en contraste con balbucean las variantes tales como de Emacs balbucean y el AutoLISP que sean productos encajados de las idiomas de la extensión particularmente. Desemejante de muchos anterior balbucea, el campo común balbucea (como el esquema ) el alcance variable léxico de las aplicaciones.

    La mayor parte de los sistemas del balbuceo cuyos diseños contribuyeron al campo común Balbucear-tal mientras que el ZetaLisp y Francisco Balbucear-utilizó dinámicamente variables scoped en sus intérpretes y léxico scoped variables en sus recopiladores. El esquema introdujo el único uso de variables lexically-scoped de balbucear; una inspiración del ALGOL 68 que fue reconocido extensamente como buena idea. El CL apoya variables dynamically-scoped también, pero deben ser declaradas explícitamente como " special". No hay diferencias en scoping entre los intérpretes del CL del ANSI y los recopiladores.

    El campo común balbucea se llama un Lisp-2 y proyecta a veces un Lisp-1, refiriendo al uso del CL de los namespaces separados para las funciones y las variables. (De hecho, el CL tiene muchos namespaces de, tales como ésos para va las etiquetas, los nombres de bloque, y las palabras claves de loop.) Hay una controversia de muchos años entre el CL y los abogados del esquema sobre las compensaciones implicadas en namespaces múltiples. En esquema, es (amplio) necesario evitar dar los nombres de variables que coinciden con funciones; Las funciones del esquema tienen con frecuencia discusiones nombradas lis, lst, o lyst para no estar en conflicto con la función de sistema list. Sin embargo, en CL es necesario referir explícitamente al namespace de la función al pasar una función como discusión -- cuál es también una ocurrencia común, como en el ejemplo de sort arriba.

    El CL también diferencia de esquema en su dirección de valores boleanos. El esquema utiliza el #t y el #f de los valores especiales para representar verdad y falsedad. El CL sigue el más viejo balbucea convención de usar los símbolos T y NADA, con la NADA colocándose también para la lista vacía. En CL, el cualquier valor de la no-NADA de es tan verdad tratado por conditionals tales como if como son los valores F del non-# en esquema. Esto permite que algunos operadores sirvan como predicados (que contestan a una pregunta boleano-valorada) y como vuelta de un valor útil para el cómputo adicional.

    Pasado, los estándares del esquema que los documentos requieren el cola-llaman la optimización, que no lo hace el estándar del CL. La mayoría de las puestas en práctica del CL ofrecen cola-llaman la optimización, aunque a menudo solamente cuando el programador utiliza un directorio de la optimización. No obstante, el estilo común de la codificación del CL no favorece el uso ubicuo de la repetición que el estilo del esquema prefiere -- un qué programador del esquema expresaría con la repetición de la cola, un usuario del CL expresaría generalmente con una expresión iterativa en do, dolist, loop, o (más recientemente) con el paquete de iterate.

    Puestas en práctica

    El campo común balbucea es definido por una especificación (como Ada y C ) algo que por una sola puesta en práctica (como Perl ). Hay muchas puestas en práctica, y las áreas estándar de los encantos hacia fuera en las cuales pueden diferenciar válido.

    Además, las puestas en práctica tienden a venir con los paquetes de la biblioteca, que proporcionan la funcionalidad no cubierta en el estándar. Las bibliotecas del software libre se han creado para apoyar tales características de una manera portable, especialmente Common-Lisp.net y el campo común balbucea proyecto de la colección del código abierto.

    El campo común balbucea se ha diseñado ser ejecutado por declaraciones estándar incrementales de los compiladores para optimizar la compilación (tal como función inlining) se propone en la especificación de la lengua. La mayoría del campo común balbucea las puestas en práctica compila funciones al código automático nativo. Otros compilan al Bytecode, que reduce velocidad pero facilitan portabilidad del binario-código. La idea falsa que balbucea es una lengua puro-interpretada es muy probablemente debido al hecho que balbucea el campo común los ambientes proporciona un pronto interactivo y que se compilan las funciones uno a uno, de una manera incremental.

    Un cierto Unix - las puestas en práctica basadas, tales como CLISP, se pueden utilizar como intérpretes de la escritura; es decir, invocado por el sistema transparente de la manera que un Perl o el intérprete de la cáscara de Unix es.

    Lista de puestas en práctica

    Las puestas en práctica redistributable incluyen libremente:
    CMUCL del

    , original de la universidad del Carnegie Mellon, ahora mantenida como software libre por un grupo de voluntarios. CMUCL utiliza un recopilador rápido del nativo-código. Está disponible en el linux y DEB para Intel x86; Linux para la alfa; Mac OS x para Intel x86 y PowerPC; y Solaris, IRIX, y HP-UX en sus plataformas nativas.
    El campo común de acero del banco balbucea (SBCL), una rama de CMUCL. " Por lo general, SBCL es distinguido del CL de CMU por un mayor énfasis en maintainability." Los funcionamientos de SBCL en las plataformas CMUCL hacen, excepto HP/UX; además, funciona en el linux para PowerPC, el SPARC, y las MIPS, y tiene ayuda experimental para funcionar en Windows. SBCL no utiliza a intérprete; todas las expresiones se compilan al código nativo.
    CLISP, una puesta en práctica de bytecode-compilación, portable y funcionamientos en un número de Unix y Unix-como sistemas (mac incluyendo OS x ), así como Microsoft Windows y varios otros sistemas.
    El campo común del GNU balbucea (GCL), el proyecto del GNU balbucea recopilador. No todavía completamente ANSI-obediente, el GCL es sin embargo la puesta en práctica de la opción para varios proyectos grandes incluyendo los máximos matemáticos de las herramientas, el AXIOMA y el ACL2 . El GCL funciona debajo de GNU/Linux en once diversas arquitecturas, y también bajo Windows, Solaris, y FreeBSD .
    El campo común integrable balbucea (ECL), diseñado para ser encajado en programas C .
    El OpenMCL, un software libre /rama de la fuente abierta del campo común de Macintosh balbucea. Pues el nombre implica, OpenMCL era original nativo a Macintosh; ahora funciona en el mac OS x, Darwin, y GNU/Linux para PowerPC y Intel x86-64.
    El Movitz ejecuta un ambiente del balbuceo para las computadoras X86 sin la confianza en cualquier OS subyacente.
    El sistema de Poplog ejecuta una versión del CL, con el POP-11, y opcionalmente el prólogo, y el ml estándar (SML), permitiendo la programación mezclada de la lengua. Para todos, la lengua de puesta en práctica es POP-11, que se compila incremental. También tiene un integrado Emacs - como el redactor que comunica con el recopilador.
    Java - orientada El oso armado que balbucea el campo común es una puesta en práctica del CL que funciona en la máquina virtual de Java. Incluye un recopilador al código del octeto de Java, y permite el acceso a las bibliotecas de Java del CL. El CL armado del oso es un componente del redactor armado del oso J, aunque puede ser utilizado independiente.
    El Jatha es una biblioteca de Java que ejecuta un subconjunto bastante grande de campo común balbucea.
    El CLforJava es una puesta en práctica del CL en Java que se desarrolle activamente en la universidad de Charleston .

    Las puestas en práctica comerciales incluyen:
    el campo común del Allegro balbucea por Franz, Inc.
    LispWorks por LispWorks Ltd.
    El campo común de Macintosh balbucea por Digitool, Inc.
    El Corman balbucea de Corman Technologies
    El campo común de Scieneer balbucea por Scieneer Pty Ltd.

    Usos

    Fijar el campo común de la categoría balbucean el software .

    El campo común balbucea se utiliza en muchos usos comerciales acertados, el más famoso (ninguna duda debido promoción de s de Graham Paul a ') era el Yahoo! Sitio del tela-comercio del almacén de, que fue reescrito más adelante en C++ y el Perl. Otros ejemplos notables incluyen:

    BioBike es un entorno de desarrollo del flujo de trabajo de la bioinformática que balbucean ejecutados enteramente en campo común. Su característica de distinción es programabilidad del por--hojeador.
    Lengua declarativa de fines generales del International de Genworks (GDL), una herramienta de desarrollo para crear la ingeniería en Internet, diseño, y aplicaciones empresariales.
    Grabador de Igor: una notación y un grabado de música 1st-Class programan escrito en campo común balbucean.
    Jak y juegos video de Daxter para Playstation2
    Software mecánico del diseño del ICAD del International de las tecnologías del conocimiento.
    Mirai, gráficos de computadora completamente integrados 2d/3d de los LLC de Izware contenta la habitación de la creación que ofrece a modeler poligonal, un IK/FK avanzado y sistema no linear de la animación (popularizados más adelante por los productos tales como el Animanium y Softimage XSI de Sega, respectivamente), y 2.a y la pintura avanzadas 3d. Fue utilizado en películas importantes (lo más famoso posible en de la nueva línea cine el señor de los anillos ), juegos video y simulaciones militares.
    El OpenMusic es un ambiente de programación visual orientado al objeto basado en campo común balbucea, utilizado en la composición de ayuda de computadora .
    Orbitz, un sitio importante de la reservación del recorrido.
    Piano, un paquete para el diseño preliminar de los aviones comerciales y evaluación del competidor.
    Línea de la corporación de Xanalys de software de la investigación, usada por servicios de la prevención de la policía, de la seguridad y de fraude por todo el mundo.
    Anvita un manual de la medicina, de la patología y de las ciencia biológicas moleculares.

    También existen los usos acertados de la abrir-fuente escritos en campo común balbucea, por ejemplo:
    el ACL2 del

    , un prover completamente equipado del teorema para una variante aplicable del campo común balbucea.
    Compo, una lengua permitiendo que las estructuras musicales complejas sean descritas en una manera natural.
    GBBopen, un marco del sistema de la pizarra
    Lisa, un sistema de la producción-regla para construir el " intelligent" agentes del software.
    Máximos, un sistema sofisticado de la álgebra de la computadora.
    El Stumpwm, un embaldosado, encargado de ventana conducido teclado X11 escrito enteramente en campo común balbucea.

    También, el campo común balbucea es utilizado por muchos gobierno y las instituciones no lucrativas. Los ejemplos de su uso en NASA incluyen:
    Agente alejado del

    , ganador del software 1999 de la NASA de la concesión del año.
    PUNTO, el planeamiento del telescopio espacial de Hubble y sistema de previsión.

    Ver también

    el campo común balbucea la lengua
    El encendido balbucea
    El campo común práctico balbucea

    .

  • Zenithic
  • Solanum roseum
    Random links:Leesburg, Alabama | Chapitel de Dublín | Conflicto de Wapping | Stewart Carson | AMS Neve

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