Top 10 de los artículos

YouTube
Gmail
Goole
GayRomeo
Números chinos
Números romanos
Orkut
Costco
Sistema porta hepático
El mundo Factbook

News:

APL (lenguaje de programación)

APL
Paradigma arsenal, funcional, estructurado, modular
Aparecido adentro 1964
Diseñado cerca Kenneth E. Iverson
Revelador Kenneth E. Iverson
Disciplina que mecanografía dinámico
Puestas en práctica importantes IBM APL2, Dyalog APL, APL2000, APL agudo
Dialectos A+, Dyalog APL, APLNext
Influenciado cerca notación matemática
Influenciado J, K, Nial

APL (A Pel rogramming Lel anguage) es programación del arsenal lengua basada en una notación inventada en 1957 cerca Kenneth E. Iverson mientras que en Universidad de Harvard. Originó como tentativa de proporcionar la notación constante para la enseñanza y el análisis de los asuntos relacionados con el uso de computadoras. Iverson publicó su notación en 1962 en un libro titulado Un lenguaje de programación. Antes de 1965, un subconjunto de la notación fue puesto en ejecución como lenguaje de programación, después conocido como IVSYS. Más adelante, antes de su lanzamiento comercial, el APL consiguió su nombre del título del libro. Iverson recibió Concesión de Turing en 1979 para su trabajo.

La notación de Iverson fue utilizada más adelante para describir IBM System/360 trabaje a máquina la arquitectura, una descripción mucho más sucinta y exacta que la documentación existente y revelar varios problemas previamente inadvertidos. Más adelante, a Selectric el typeball fue diseñado especialmente para escribir una representación linear de esta notación. Este aspecto distintivo del APL, el uso de un juego de caracteres especial que representa visualmente las operaciones que se realizarán, sigue siendo fundamental sin cambios hoy.

Las características de lengua del APL un sistema rico de las operaciones que trabajan en entero órdenes de datos, como el sistema de instrucción del vector de a SIMD arquitectura. Mientras que muchos lenguajes de programación requerirían iteración a, por ejemplo, agregue dos órdenes juntos, las funciones en reparto del APL típicamente con órdenes enteros inmediatamente. Conjuntamente con un juego de caracteres especial donde los glyphs representan las operaciones que se realizarán, esto reduce drástico el número potencial de lazos y permite más pequeño, programas más sucintos y más compactos.

Como con todos los lenguajes de programación que han tenido varias décadas del uso continuo, el APL se ha desarrollado perceptiblemente, generalmente de una manera hacia arriba-compatible, de sus lanzamientos anteriores. El APL está generalmente interpretativo y interactivo, y ofrece normalmente leer-evaluar-imprimen el lazo (REPL) para la entrada del comando y de la expresión. Hoy, casi toda la ayuda moderna de las puestas en práctica programación estructurada mientras que varios dialectos ahora ofrecen una cierta forma de orientado al objeto construcciones de programación.

Contenido

Historia

La primera encarnación de cuál era más adelante ser el lenguaje de programación del APL era un libro que describía una notación inventada en 1957 cerca Kenneth E. Iverson mientras que en Universidad de Harvard. Publicado en 1962, la notación descrita en el libro era reconocible con todo distante del APL.

IBM era principalmente responsable de la introducción del APL al mercado. En 1965, una porción de la notación fue vuelta a trabajar y puso en ejecución como lenguaje de programación. El APL estaba primero disponible en 1967 para IBM 1130 como APL \ 1130[1]. El APL ganó su equilibrio en sistemas en tiempo repartido del chasis a partir de los últimos años 60 con los años 80. Más adelante, cuando convenientemente la ejecución del hardware era el comenzar finalmente disponible en el temprano a los a mediados de los años ochenta, muchos usuarios emigró sus usos al ambiente del ordenador personal.

Intérpretes tempranos de IBM APL para IBM 360 y IBM 370 el hardware puso a su propia gerencia en ejecución multiusos en vez de confiar en los servicios de anfitrión, así eran sistemas en tiempo repartido en la su propia derecha. Primero introducido en 1966, APL \ 360 el sistema era un intérprete multiusos. En 1973, IBM lanzado APL.SV cuál eran una continuación del mismo producto, pero que ofreció variables compartidas como los medios de tener acceso a instalaciones fuera del sistema del APL, tal como sistema operativo archivan. En los mediados de los años setenta, adaptaron al intérprete del chasis de IBM incluso para el uso en IBM 5100 computadora de escritorio, que tenía una CRT pequeña y un teclado del APL, cuando la mayoría de las otras computadoras pequeñas del tiempo ofrecieron solamente el BASIC. En los años 80, VSAPL el producto del programa gozó de uso extenso con CMS, TSO, VSPC, y CICS usuarios.

Varias firmas en tiempo repartido se originaron en los años 60 y los años 70 que vendieron servicios del APL usando las versiones modificadas del intérprete APL \ 360 de IBM. En Norteamérica, mejor-sabidas estaban I. P. Asociados del sostenido, Scientific Timesharing Corporation, y la compañía de computadora (TCC). Con el advenimiento primero de chasis menos costosos tales como IBM 4331 y más adelante el ordenador personal, la industria en tiempo repartido tenía todos sino desaparecido por los a mediados de los años ochenta.

APL agudo estaba disponible de I. P. Asociados del sostenido, primero sobre una base en tiempo repartido en los años 60, y más adelante como producto del programa que comienza alrededor 1979. APL agudo era una puesta en práctica avanzada del APL con muchas extensiones de lengua, por ejemplo paquetes (la capacidad de poner unos o más objetos en una sola variable), el sistema de ficheros, jerarquizó órdenes, y variables compartidas.

Los intérpretes del APL estaban disponibles del otro chasis y el miniordenador fabrica también, notablemente Burroughs, CDC, Datos - general, DEC, Harris, Hewlett-Packard, Siemens, Xerox, y otros.

APL2

Comenzando en los años 80 tempranos, desarrollo de IBM APL, bajo dirección del dr Marrón de Jim, puesto en ejecución una nueva versión de la lengua del APL de la cual contuvo como su realce primario el concepto órdenes jerarquizados donde un arsenal puede contener otros órdenes, más las nuevas características de lengua que facilitaron la integración de órdenes jerarquizados en workflow del programa. Ken Iverson, no más en el control del desarrollo de la lengua del APL, IBM izquierdo y ensamblado I. P. Asociados del sostenido donde él, entre otras cosas, ordenó la evolución del APL agudo para ser más según su visión. Iverson desarrolló más adelante Lengua de J.

Pues otros vendedores estaban ocupados intérpretes el convertirse del APL para el hardware nuevo, notablemente Unix- basado microordenadores, APL2 era casi siempre el estándar elegido para los nuevos progresos del intérprete del APL. Incluso hoy, la mayoría de los vendedores del APL citan la compatibilidad APL2, que acerca solamente a 100%, como punto de venta para sus productos.

APL2 para IBM los ordenadores centrales siguen siendo hoy disponible, y estaban primero disponibles para CMS y TSO el alrededor an o 80. La edición del sitio de trabajo APL2 (Windows, OS/2, AIX, Linux, y Solaris) siguió mucho más adelante en los años 90 tempranos.

Microordenadores

La primera puesta en práctica del microordenador del APL estaba en el MCM/70, 8008- procesador basado, en 1973. A APL pequeño para Intel 8080 EMPL llamados fueron lanzados en 1977, y Softronics APL, con la mayor parte de las funciones del APL completo, porque 8080 sistemas basados de CP/M fueron lanzados en 1979.

En 1977, fue lanzado un nivel APL del negocio conocido como TIS APL, basado en el procesador Z80. Ofreció el sistema completo de las funciones del archivo para el APL, más una pantalla completa entrada y la conmutación de las discusiones derechas e izquierdas para la mayoría de los operadores de dos días introduciendo el ~. prefijo a todas las funciones de dos días del solo carácter por ejemplo - o a/.

La vanguardia APL estaba disponible para Z80 CP/M- procesadores basados en los últimos años 70. TCC lanzó APL.68000 en los años 80 tempranos para Motorola 68000- procesadores basados, este sistema que es la base para el producto limitado de MicroAPL APLX. I. P. Los asociados del sostenido lanzaron una versión de su intérprete del APL para la PC y el PC/370 de IBM - para la PC de IBM, emulador fue escrito que facilitó el reusing de mucho del código del chasis de IBM 370. Discutible, el intérprete más conocido del APL para el ordenador personal de IBM era STSC's APL*Plus/PC.

En los años 80 tempranos, los Analogic Corporation desarrollada La máquina del APL, que era proceso de arsenal la computadora diseñó ser programada solamente en el APL. Había realmente tres unidades de proceso, el sitio de trabajo del usuario, PC DE IBM, donde los programas fueron incorporados y corregidos, Motorola 6800 procesador que funcionó a intérprete del APL, y la máquina celular analógica que ejecutó los primitivos. A la hora de su introducción la máquina del APL era probable el sistema más rápido del APL disponible. Aunque un éxito tecnológico, la máquina del APL era una falta de la comercialización. La versión inicial apoyó un solo proceso a la vez. Cuando el proyecto fue continuado, el diseño había sido terminado para permitir a usuarios múltiples. Como aparte, un aspecto inusual de la máquina del APL era que la biblioteca de espacios de trabajo fue organizada tales que una sola función o variable que fueron compartidas por muchos espacios de trabajo existió solamente una vez en la biblioteca. Varios de los miembros del proyecto de la máquina del APL habían pasado previamente un número de años con poner en ejecución de Burroughs APL \ 700.

En una etapa, Microsoft Corporation planeó lanzar una versión del APL, pero estos planes nunca materializaron.

Una publicación temprana 1978 de Rodnay Zaks de Sybex era Una puesta en práctica microprogramada del APL ISBN 0895880059 cuál es el listado completo, total de la fuente para el microcódigo para un PDP/el procesador LSI-11 que pone el APL en ejecución. Ésta pudo haber sido la sustancia de su tesis de PhD.

Descripción

[¿investigación original?]

Sobre un sistema muy ancho de los dominios del problema (matemáticas, ciencia, ingeniería, diseño de la computadora, robótica, visualización de los datos, ciencia actuarial, DP tradicional, etc.) el APL es un extremadamente de gran alcance, expresivo y el lenguaje de programación sucinto, fijó típicamente en un ambiente interactivo. Fue creado originalmente, entre otras cosas, como manera de describir las computadoras, expresando notación matemática de una manera rigurosa que se podría interpretar por una computadora. Es fácil aprender pero algunos programas del APL pueden tomar un cierto tiempo para entender, especialmente para un recién llegado. Pocos otros lenguajes de programación ofrecen la funcionalidad comprensiva del arsenal del APL.

Desemejante de lenguajes de programación tradicionalmente estructurados, el código en el APL se estructura típicamente como cadenas de monadic o de dos días funciones y operadores el actuar encendido órdenes. Pues el APL tiene muchos anormales primitivos (funciones y operadores, indicados por un solo símbolo o una combinación de algunos símbolos), no tiene función o precedencia de operador. Las puestas en práctica tempranas del APL no tenían controle las estructuras (haga o mientras que los lazos, si-entonces-otros), pero usando operaciones del arsenal, uso de programación estructurada las construcciones eran no necesarias justo. Por ejemplo, la función de la iota (que rinde un arsenal unidimensional, o vector, a partir de la 1 a N) puede substituir el para-lazo iteración. Puestas en práctica más recientes del APL incluyen generalmente las estructuras comprensivas del control, así el flujo de la estructura de datos y del control de programa puede estar claramente y se separó limpio.

El ambiente del APL se llama a espacio de trabajo. En un espacio de trabajo el usuario puede definir programas y datos, es decir. los valores de los datos existen también fuera de los programas, y el usuario puede manipular los datos sin la necesidad para definir un programa. Por ejemplo,

asigna vector valores 4 5 6 7 a N;

agrega 4 a todos los valores (que dan 8 9 10 11) y los imprime (un valor de vuelta no asignado en el final de una declaración a una variable usando la flecha de la asignación es exhibido por el intérprete del APL);

imprime la suma de N, es decir. 22.

El usuario puede ahorrar el espacio de trabajo con todos los valores, programas y estado de la ejecución.

El APL es bien sabido para su uso de un sistema de noASCII símbolos que son una extensión de la aritmética tradicional y notación algebraica. Tener solos nombres del carácter para SIMD las funciones del vector son unidireccionales que el APL permite la formulación compacta de los algoritmos para la transformación de los datos tal como computar Juego de Conway de la vida en una línea de código (ejemplo). En casi todas las versiones del APL, es teóricamente posible expresar cualquier función computable en una expresión, es decir, en una línea de código.

Debido a su naturaleza condensada y caracteres no estándar, el APL a veces se ha llamado “lengua del write-only“, y lectura que un programa del APL puede sentirse al principio como descifrar Hieroglyphics egipcios. Debido a el inusual juego de caracteres, uso de muchos programadores especial teclados con los keytops del APL para ser autor de código del APL. Aunque hay varias maneras de escribir código del APL usando solamente caracteres de ASCII[2], en la práctica, casi nunca se hace. (Esto se puede pensar para apoyar las tesis de Iverson alrededor notación como herramienta del pensamiento[la citación necesitó].) La mayoría si no todas las puestas en práctica modernas utilizan disposiciones de teclado estándares, con los mappings especiales o Redactores del método de entrada a los caracteres del acceso no-ASCII. Históricamente, la fuente del APL ha sido distintiva, con los caracteres alfabéticos del itálico mayúsculo y los números y los símbolos verticales. La mayoría de los vendedores continúan exhibiendo el juego de caracteres del APL en una fuente de encargo.

Los abogados del APL demandan que los ejemplos del código supuesto del write-only son casi invariable ejemplos de los errores de programación pobres de la práctica o del principiante, que pueden ocurrir en cualquier lengua. Los abogados del APL también demandan que son más productivos lejano con el APL que con lenguajes de programación más convencionales, y que el trabajo de software se puede poner en ejecución en lejos menos tiempo y con lejos pocos programadores que usando la otra tecnología. El APL deja a individuo solucionar problemas más duros más rápidamente. También, siendo compacto y conciso, el APL se presta bien al desarrollo del software de una escala más grande mientras que la complejidad que se presenta de una gran cantidad de líneas del código puede ser reducida dramáticamente. Muchos abogados y los médicos del APL ven la programación en lenguajes de programación estándares, por ejemplo COBOL y Java, como comparativamente aburrido. El APL se encuentra a menudo donde está importante el tiempo-a-mercado, por ejemplo con sistemas que negocian.

Iverson diseñó más adelante Lenguaje de programación de J cuál utiliza ASCII con bigramas en vez de símbolos especiales.

Ejemplos

Un ejemplo muy simple que inmóvil requeriría varias líneas del código en la mayoría no-pone en orden lenguajes de programación es un generador del número al azar de la lotería de la selección 6 (a partir de 1-40), termina con no garantizar ningún número repetido, y clasificar los resultados en orden ascendente:

¿↑6? 40

La expresión siguiente clases una lista de la palabra almacenada en la matriz X según largo de una palabra:

X [⍋X+.≠ ';]

La función siguiente “vida”, escrita en Dyalog APL, toma una matriz boleana y calcula la nueva generación según Juego de Conway de la vida:

En el ejemplo siguiente, también Dyalog, la primera línea asigna un cierto código del HTML a un “txt variable” y después utiliza una expresión del APL para quitar todas las etiquetas del HTML, volviendo el texto solamente según las indicaciones de la línea pasada.

La expresión siguiente encuentra todos números primeros a partir de la 1 a R (que presume un origen del índice de 1). En tiempo y espacio, el cálculo es O (² de R).

(∼R∈R°.×R) /R←1↓ιR

De la derecha hacia la izquierda, esto significa:

  1. el ιR crea contener del vector números enteros a partir de la 1 a R (si R = 6 al principio del programa, ιR es 1 2 3 4 5 6)
  2. Caiga el primer elemento de este vector (función del ↓), es decir. 1. 1↓ιR es tan 2 3 4 5 6
  3. Fije R al vector (←, el primitivo de la asignación)
  4. Genere producto externo de R multiplicado por R, es decir. una matriz que es tabla de la multiplicación de R por R (función de °.×)
  5. Construya un vector la misma longitud que R con 1 en cada lugar donde está el número correspondiente en R en la matriz externa del producto (el ∈, fijó la función de la inclusión), es decir. 0 0 1 0 1
  6. Niegue lógicamente los valores en el vector (ceros del cambio a unos y a unos a los ceros) (∼, función de la negación), es decir. 1 1 0 1 0
  7. Seleccione los artículos en R para el cual el elemento correspondiente sea 1 (/función), es decir. 2 3 5

Cálculo

El APL era único en la velocidad con la cual podría realizar operaciones complejas de la matriz. Por ejemplo, una multiplicación muy grande de la matriz tomaría solamente algunos segundos en una máquina que era mucho menos de gran alcance que ésas hoy. Había razones técnicas y económicas de esta ventaja:

  • Los intérpretes comerciales entregaron rutinas lineares alto-templadas de la biblioteca de la álgebra.
  • Muy bajo los gastos indirectos interpretativos fueron incurridos en por-ponen en orden-no el por-elemento.
  • El tiempo de reacción del APL comparó favorable a los tiempos de pasada de recopiladores óptimos tempranos.
  • IBM proporcionó microcódigo ayuda para el APL en un número de chasis IBM/370.

Un papel extensamente citado “una máquina del APL” (sida autor por Phil Abrams) perpetuó el mito de el cual el APL hizo uso penetrante evaluación perezosa donde los cálculos no serían realizados realmente hasta que los resultados eran necesarios y entonces solamente esos cálculos requirieron terminantemente. Poner en ejecución) una evaluación perezosa obvia (y fácil es J-vector : cuando un monadic iota se encuentra en el código, IS-IS guardado como a representación en vez de ser calculado inmediatamente, así ahorrando una cierta hora así como memoria.

Aunque esta técnica no fue generalizada, incorpora el mejor mecanismo de la supervivencia de la lengua: no especificar la orden de operaciones escalares. Así como estandardizado eventual por X3J10, el APL está tan altamente dato-paralelo, da a implementors de la lengua la libertad inmensa a las operaciones del horario tan eficientemente como sea posible. Como innovaciones de la computadora por ejemplo memoria de escondrijo, y SIMD la ejecución llegó a ser disponible en el comercio, los programas del APL virados hacia el lado de babor con pocos detalles bajos re-óptimos pasados esfuerzo adicional.

Intérpretes

Hoy, la mayoría de la actividad de la lengua del APL ocurre bajo sistema operativo del Microsoft Windows, con una cierta actividad debajo Linux, Unix, y OS del Mac. Comparativamente poca actividad del APL ocurre hoy en los ordenadores centrales.

APLNow (antes APL2000) ofrece a intérprete avanzado del APL que funciona bajo Linux, Unix, y Windows. Apoya la automatización de Windows, las ayudas llaman al sistema operativo y a DLLs definido por el usario, tienen un sistema de ficheros avanzado del APL, y representan el nivel actual del desarrollo de la lengua del APL. El producto de APL2000 es una continuación avanzada de STSC'línea de productos APL*Plus/PC acertado y APL*Plus/386 de s.

Dyalog APL es un intérprete avanzado del APL que funciona bajo Linux, Unix, y Windows. Dyalog tiene extensiones agresivas a la lengua del APL que incluyan nuevo orientado al objeto características, realces numerosos de la lengua, más un constante namespace modelo usado para ambos su interfaz de la automatización de Microsoft, así como namespaces nativos. Para la plataforma de Windows, Dyalog APL ofrece la integración apretada con Microsoft. Red, más la integración limitada con la plataforma visual del desarrollo del estudio de Microsoft.

IBM ofrece una versión de IBM APL2 para los sistemas de IBM AIX, de Linux, del sol Solaris y de Windows. Este producto es una continuación de APL2 ofrecido para los chasis de IBM. IBM APL2 era discutible el sistema más influyente del APL, que proporcionó un estándar sólido de la puesta en práctica para el sistema siguiente de extensiones a la lengua, centrándose en órdenes jerarquizados.

Ofertas limitadas MicroAPL APLX, un intérprete completamente equipado de 64 pedacitos para Linux, Windows, y Apple OS del Mac sistemas.

Soliton asocia ofertas el intérprete de SAX (APL agudo para el Unix) para los sistemas del Unix y de Linux, que es otro desarrollo del I. P. Producto agudo del APL de los asociados del sostenido. Desemejante de la mayoría de los otros intérpretes del APL, Kenneth E. Iverson tenía cierta influencia en los órdenes jerarquizados manera fueron puestos en ejecución en el APL agudo y SAX. Casi el resto de las puestas en práctica del APL siguieron el curso fijado por IBM con APL2, así algunos detalles importantes en el APL agudo diferencian de otras puestas en práctica.

Compilación

Los programas del APL están normalmente interpretado y menos a menudo compilado. En realidad, la mayoría de los recopiladores del APL traducido fuente APL a una lengua de nivel inferior por ejemplo C, dejando los detalles machine-specific al recopilador de nivel inferior. La compilación de los programas del APL era un asunto con frecuencia discutido en conferencias. Aunque algunos de los más nuevos realces a la lengua del APL tal como órdenes jerarquizados han hecho la lengua cada vez más difícil de compilar, la idea de la compilación del APL todavía está en el desarrollo hoy.

En el pasado, la compilación del APL fue mirada como los medios de alcanzar la velocidad de la ejecución comparable a otras idiomas de corriente, especialmente en los ordenadores centrales. Varios recopiladores del APL alcanzaron algunos niveles del éxito, aunque comparativamente poco del esfuerzo del desarrollo pasado en el APL sobre los años fueron a perfeccionar la compilación en el código automático.

Al igual que el caso al mover los programas a partir de un intérprete del APL del vendedor a otro, programas del APL del APL requerirá invariable cambios a su contenido. Dependiendo del recopilador, los declaraciones variables pudieron ser necesarios, ciertas características de lengua necesitarían ser quitadas o ser evitadas, o los programas del APL necesitarían ser limpiados encima de de cierta manera. Algunas características de la lengua, tales como la función del ejecutar (evaluador de la expresión) y el vario reflexión y introspection las funciones del APL, tal como la capacidad de volver el texto de una función o de materializar una nueva función del texto, no son simplemente prácticas poner en ejecución en la compilación del código automático.

Un recopilador comercial fue traído al mercado cerca STSC en los a mediados de los años ochenta como agregación al producto del programa de VSAPL de IBM. Desemejante de recopiladores más modernos del APL, este producto produjo el código automático que se ejecutaría solamente en el ambiente del intérprete, él no era posible eliminar el componente del intérprete. El recopilador podría compilar muchos escalares y vector operaciones al código automático, pero confiaría en los servicios del intérprete del APL para realizar más funciones avanzadas, más bien que procura compilarlas. Sin embargo, los speedups dramáticos ocurrieron, especialmente para el código pesadamente iterativo del APL.

Alrededor del mismo tiempo, el libro Un recopilador del APL por Timothy Budd aparecido en la impresión. Este libro detalló la construcción de un traductor del APL, escrita adentro C, tales como que realizó ciertas optimizaciones fusión del lazo específico a las necesidades de una lengua del arsenal. La lengua orígen era APL-como en que algunas reglas de la lengua del APL fueron cambiadas o relajaron para permitir una compilación más eficiente. El traductor emitiría el código de C que entonces se compilen y el exterior bien del funcionamiento del espacio de trabajo del APL.

Hoy, la velocidad de la ejecución es menos crítica y muchas idiomas populares son el usar puesto en ejecución máquinas virtuales - instrucciones que se interpretan en el tiempo de pasada. La Burroughs/el Unisys APLB el intérprete (1982) era el primer para utilizar la compilación incremental dinámica para producir el código para una máquina virtual APL-específica. Recompiled en marcha mientras que los identificadores cambiaron sus significados funcionales. Además de quitar análisis y un cierto repaso de las faltas de la trayectoria principal de la ejecución, tal compilación también aerodinamiza la entrada y la salida repetidas de operandos funcionales definidos por el usario. Esto evita la disposición del apilado y el desmontaje para las llamadas de función hechas por los operadores incorporados del APL por ejemplo reduce y cada uno.

ÁPICE, un recopilador del APL de la investigación, está disponible de la isla Research Inc. de la serpiente El ÁPICE compila APL plano (un subconjunto de ISO N8485) en SACO, una lengua funcional del arsenal con la semántica paralela, y funciona actualmente debajo Linux. aplicaciones Ápice-generadas del código fusión del lazo y contracción del arsenal, algoritmos del especial-caso no generalmente disponibles para los intérpretes (e.g., mejora del vector de la permutación), alcanzar un nivel del funcionamiento comparable a el de FORTRAN.

El APLNext VisualAPL el sistema es una salida de un sistema convencional del APL en que VisualAPL es un verdad. Lengua neta que es completamente inter-operable con otra . Microsoft. Red idiomas por ejemplo VB.Net y C#. VisualAPL es intrínsecamente orientado al objeto y Unicode-basado. Mientras que VisualAPL incorpora la mayor parte de las características de las puestas en práctica del APL de la herencia, la lengua de VisualAPL extiende la herencia APL para ser. Red-obediente. VisualAPL se recibe en el estudio visual estándar IDE de Microsoft y como tal, invoca la compilación de una forma idéntica a la de otra. Idiomas netas. Produciendo. El código runtime neto del lenguaje común (CLR), utiliza el recopilador justo a tiempo de Microsoft (JIT) para apoyar el pedacito 32 o el hardware 64-bit. Se ha divulgado el funcionamiento substancial velocidad-sube la herencia excesiva APL, especialmente cuando el mecanografiar fuerte (opcional) de las discusiones de la función se utiliza.

Un APL a C# el traductor está disponible de sistemas gráficos de la calzada. Este producto fue diseñado para permitir el código del APL, traducido a C# equivalente, para funcionar totalmente fuera del ambiente del APL. El recopilador de la calzada requiere una biblioteca run-time de las funciones del arsenal. Un cierto speedup, a veces dramático, es visible, pero sucede a causa de las optimizaciones inherentes en Microsoft . Red marco.

Terminología

El APL hace una distinción clara en medio funciones y operadores. Las funciones toman valores (las variables o las constantes o las expresiones) como discusiones, y vuelven valores como resultados. Operadores (aka funciones higher-order) la toma funciona como discusiones, y la vuelta relacionada, funciones derivadas como resultados. Por ejemplo la función de la “suma” es derivada aplicando al operador de la “reducción” a la función de la “adición”. Aplicando al mismo operador de la reducción al “techo” funcione (que vuelve el más grande de dos valores) crea una función “máxima” derivada, que vuelve el más grande de un grupo (vector) de valores. En la lengua de J, Iverson substituyó los términos “verbo” y “adverbio” para la “función” y el “operador”.

El APL también identifica esas características construidas en la lengua, y representadas por un símbolo, o una combinación fija de símbolos, como primitivos. La mayoría de los primitivos son funciones u operadores. La codificación APL es en gran parte un proceso de escribir funciones no-primitivas y (en algunas versiones del APL) a operadores. Sin embargo consideran a algunos primitivos ser ni funciones u operadores, lo más perceptiblemente posible asignación.

Juego de caracteres

El APL se ha criticado siempre para su opción de un juego de caracteres único, no estándar. La observación que sienten bien algunos que la aprenden generalmente a los adherentes ardientes demuestra que hay un cierto peso detrás Iversonla 'idea de s que la notación utilizó diferencia. En el principio, había pocos dispositivos terminales que podrían reproducir el carácter del APL - sistema - los más populares empleo IBM Selectric mecanismo de impresión junto con un tipo especial elemento del APL. En un cierto plazo, con el uso universal de los dispositivos de alta calidad de la representación gráfica y de la impresión, el problema de la fuente de carácter del APL se ha eliminado en gran parte; sin embargo, el problema de incorporar caracteres del APL requiere el uso de redactores del método de entrada o los mappings especiales del teclado, que pueden frustrar a principiantes se acostumbraron a otras idiomas. Con la popularización del Unicode el estándar, que contiene el juego de caracteres del APL, el problema de obtener las fuentes requeridas se parece contrapesado para salir.

Del punto de vista de un usuario, los caracteres adicionales pueden dar a APL una elegancia y un concision especiales no posibles en otras idiomas, usando la mnemónica de los símbolos visualmente de las funciones que representan. O puede conducir a un grado ridículo de complejidad y de unreadability, típicamente cuando los símbolos se encadenan juntos en una sola masa sin ningunos comentarios. O puede ser unreasonably difícil y desperdiciador de tiempo entonces entrar corrija más adelante esas declaraciones del APL.

Símbolos del APL y disposición de teclado

Observe las mnemónicas que asocian un carácter del APL a una letra: signo de interrogación en Q, energía en P, rho en R, valor bajo en B, codifique en N, módulo en M y así sucesivamente. Esto hace más fácil para que un altavoz de lengua inglesa mecanografíe el APL en un teclado no-APL que proporciona uno tiene regeneración visual en su pantalla. También, las etiquetas se han producido para el accesorio a los teclados estándares, en el frente de las llaves o en la tapa de ellas.

Un diagrama más actualizado del teclado, aplicables para APL2 y otras puestas en práctica modernas, está disponibles: Disposición de la unión para las ventanas.

Todos los símbolos del APL están presentes adentro Unicode (aunque algunos productos del APL pueden todavía no ofrecer esto):

' ( ) + , - . /  :  ; < = >  ? [ ]
\ _ ¨ ¯ × ÷

Los caracteres adicionales del APL estaban disponibles cerca el overstriking un carácter sobre otro. Por ejemplo, registro el símbolo fue formado overstriking la cambioP con la cambioO. Esto complicó corregir errores y corregir líneas de programa. Ésta pudo en última instancia haber sido la razón para que los programas tempranos del APL tengan cierto estilo denso - eran difíciles de corregir.

Muchos overstrikes demostrados en la tabla antedicha, aunque abrogan, no se utilizan realmente. Los nuevos overstrikes fueron introducidos por los vendedores como produjeron las versiones del APL adaptadas al hardware específico, características de sistema, sistema de ficheros, y así sucesivamente. Además, imprimiendo los terminales y el APL temprano los terminales cathode-ray eran capaces de exhibir overstrikes arbitrarios, sino como los ordenadores personales substituyó rápidamente los terminales como dispositivo de entrada de datos, carácter del APL que la ayuda ahora fue proporcionada como ROM del generador de carácter del APL o un juego de caracteres suave rendido por el dispositivo de exhibición. Con el advenimiento de Windows, los caracteres del APL fueron definidos como apenas otra fuente completa, así la distinción entre los caracteres del overstruck y los caracteres estándares que eran eliminados.

Terminales más últimos de IBM, notablemente IBM 3270 las estaciones de exhibición, tenían un arreglo del teclado alterno que es la base para algunas de las disposiciones de teclado modernas del APL funcionando hoy. Terminales mejores, a saber dispositivos de exhibición en vez de las impresoras, animaron el desarrollo editor de pantalla completa mejores, que tenían una mejora mensurable en legibilidad de la productividad y del programa.

Uso

El APL ha tenido de largo una base pequeña y ferviente del usuario. Era y sigue siendo popular en usos financieros y del seguro, en simulaciones, y en usos matemáticos, a menudo donde una solución cambia con frecuencia o donde en una lengua de estándar rinde complejidad excesiva. El APL se ha utilizado en una variedad amplia de contextos y para muchos y los propósitos variados. Un boletín de noticias titulado “Cotizar-Cuadrángulo” dedicado al APL ha sido publicado desde los años 70 por la sección de SIGAPL de la asociación para el material de cálculo (el Cotizar-Cuadrángulo es el nombre del carácter del APL usado para la entrada y la salida de texto).

Sobre todo debido a su notación de infix y su énfasis en la interacción con la computadora, APL puede ser un ambiente ideal para el despliegue rápido de interactivo Idiomas del específico del dominio. A pesar de la presencia de caracteres no estándar en el juego de caracteres del APL, es posible para un usuario de una lengua dominio-específica puesta en ejecución en el APL para escribir los programas simples (o las escrituras) que consisten solamente en palabras, números, y la puntuación familiar. Hasta tan tarde como los a mediados de los años ochenta, APL reparto del tiempo los vendedores ofrecieron los usos entregados bajo la forma de idiomas del específico del dominio. En I. P. Agudo el sistema en tiempo repartido, un espacio de trabajo llamó MAGIA 39 acceso ofrecido a los datos financieros y de la línea aérea más (por el tiempo) la representación gráfica gráficamente sofisticada y la divulgación, bajo la forma de lengua del específico del dominio. Otro ejemplo es el espacio de trabajo de GRAPHPAK proveído de APL2 de IBM; una versión de la demostración de APL2 y de GRAPHPAK se puede descargar para Windows.

El APL también se ha utilizado en numeroso el metaprogramming usos. Los datos externos dados que variaron de vez en cuando, programas del APL fueron utilizados para componer porciones o para terminar las secciones del código escritas en otras idiomas tales como FORTRAN, COBOL, o Java. Un uso utilizó el APL para generar código del FORTRAN de un modelo de programación linear substancial. Como tal, el código del FORTRAN fue pensado para ser demasiado grande ser entendido comfortablemente por un grupo solo o pequeño de individuos. Sin embargo, con este acercamiento, el mantenimiento general no planteó ninguna barrera. Los acercamientos similares fueron utilizados donde las tablas de la consolidación mantuvieron el exterior del APL se podrían transformar inmediatamente en los programas de COBOL importantes que realizaron los cómputos necesarios de la consolidación. Un paso aburrido que requirió previamente varias jornadas laborales, a saber modificaciones a un programa de COBOL largo, fue eliminado prácticamente. Se han hecho las cosas similares que en el extremo emitieron el código de Java.

El interés en el APL ha declinado constantemente desde los años 80. Esto era parcialmente debido a la carencia de una trayectoria de la migración de puestas en práctica performant del chasis a los alternativas baratos tempranos del ordenador personal y a la disponibilidad de las herramientas que computaban del usuario final de la alto-productividad por ejemplo Microsoft Excel y Microsoft Access. Éstas son plataformas apropiadas para qué puede haber sido usos del APL del chasis en los años 70 y los años 80. Algunos usuarios del APL emigraron a Lenguaje de programación de J, que ofrece características más avanzadas. Pasado, la declinación era también deuda en parte al crecimiento de MATLAB, Octava del GNU, y Scilab. Estas plataformas poner en orden-orientadas que computan científicas proporcionan una experiencia que computa interactiva similar al APL, pero se asemejan más a lenguajes de programación convencionales tales como FORTRAN, y utilizan el ASCII estándar.

A pesar de esta declinación, los hallazgos del APL continuaron uso en ciertos campos, tales como investigación de la contabilidad (Requisitos de PhD de la contabilidad de Stanford)

Estandardización

El APL ha sido estandardizado por ANSI grupo de funcionamiento X3J10 y ISO/IEC Grupo de funcionamiento técnico común del subcomité 22 del comité 1 3. La lengua del APL de la base se especifica en ISO 8485:1989, y la lengua extendida del APL se especifica en ISO/IEC 13751:2001.

Cotizaciones

  • “APL, en el cual usted puede escribir un programa para simular mezclar una cubierta de tarjetas y después repartirlas hacia fuera a varios jugadores en cuatro caracteres, ningunos de los cuales aparecen en un teclado estándar.” David dado
  • El “APL es un error, llevado a través a la perfección. Es la lengua del futuro para las técnicas de programación del pasado: crea una nueva generación de los vagos de la codificación. “ Edsger Dijkstra, 1968
Rho, rho, rho de X
Iguala siempre 1.
Rho es dimensión; rho de rho, fila.
¡El APL es diversión!
  • “Esta manera de hacer negocio era tan productiva que se separó como wildfire. Para el momento en que la gente práctica descubriera qué había sucedido; El APL era tan importante una parte de cómo IBM funcionó su negocio que no podría ser desarraigado posiblemente. Los investigadores salvaje-eyed habían producido a producto que rinde grandes beneficios. “Michael S. Montalbano 1982 (véase Una historia personal del APL)
  • La rima de diversión siguiente se ha circulado como parte de fortuna programe en instalaciones numerosas del Unix.
'Tis el sueño de cada programador
Antes de que se haga su vida,
Para escribir tres líneas de APL
Y haga el funcionamiento maldito de la cosa.

Vea también

Referencias

  1. ^ Casta de Larry (el agosto de 2006). "Cómo conseguimos a APL \ 1130". Vector (asociación británica del APL) 22 (3). ISSN 0955-1433. 
  2. ^ El peto, heces, lista de A de la transcripción del APL proyecta, 1993
  • Iverson, Kenneth E. - Un lenguaje de programación, Wiley 1962.
  • Una descripción formal de SYSTEM/360, Diario 3:3, Nueva York de los sistemas de IBM: 1964
  • Pakin, Sandra - Manual APL \ 360 de referencia, Science Research Associates, Inc. 1968. ISBN 0-574-16135-X,
  • Historia de lenguajes de programación, capítulo 14
  • Gerald Jean Francis Banon - Basa el da Computacao Grafica, JANEIRO DE RÍO DE: CAMPUS, 1989. 141 P.

Vea también

Acoplamientos externos

Los campos comunes de Wikimedia tienen medios relacionados con:
The original article is from Wikipedia. To view the original article please click here.
Creative Commons Licence