Está en la página 1de 17

Puede la programacin Ser Liberado del Estilo de Von Neumann? Un Estilo Funcional y Su lgebra de Programas.

Lenguajes de programacin convencionales estn creciendo cada vez ms, pero no son ms fuertes. Defectos inherentes el nivel bsico hacen que ellos sean su estilo de sintaxis, a la vez primitivo de programar ya que fue heredado de su antepasado comn el ordenador de von Neuman, su cercana a la semntica para declarar los estados de transiciones, su divisin de programadores entran en un mundo de expresiones y un mundo de declaraciones, su inhabilidad de con eficacia usar la combinacin poderosa se forma para construir nuevos programas que ya existen, y su falta de propiedades tiles matemticas para razonar sobre dichos programas. Un estilo alternativo del programa funcional es creado al tratar de combinar formas para crear programas. Los programas funcionales tratan con estructuras de datos, son a menudo no repetitivos y no recursivos, son jerrquicamente construidos, no llaman, y no requieren de una maquinaria compleja de procedimiento declaraciones para hacerse generalmente aplicable. Las formas de combinacin pueden usar programas alto nivel para construir a un nivel todava ms altos a un estilo no posible en lenguajes convencionales. Asociado con un estilo funcional de programa es un lgebra de programacin cuyas variables se extienden sobre programas y operaciones combinan formas. Leyes algebraicas dan a estas transformaciones y son realizados en la misma lengua en la cual los programas son escritos. Formas que se combinan son escogidas no slo para su poder de programa, pero tambin para el poder de sus leyes asociadas algebraicas. Los teoremas generales del lgebra dan el comportamiento detallado y condiciones de terminacin para las clases grandes de programas.

1. Lenguajes de programacin Convencionales: simple y complejo


Los lenguajes de programacin aparecen estar en un problema aunque cada nuevo lenguaje reclama rasgos nuevos y de moda, como la mecanografa fuerte o declaraciones de control estructuradas, pero el hecho simple es que pocos lenguajes hacen que un programa sea suficientemente ms barato o ms confiable para justificar el coste de produccin y estudio a usarlos.

Dado que un gran aumento en el tamao de llevar slo un pequeo aumento en el poder, los lenguajes ms pequeos y elegantes como Pascal sigue siendo populares. Pero hay una necesidad desesperada de una metodologa poderosa para ayudarnos a pensar acerca de los programas, y no hay lenguaje convencional, incluso comienza a satisfacer esa necesidad. De hecho, los lenguajes convencionales crean una confusin innecesaria en la manera en que pensamos acerca de los programas. Durante veinte aos, los lenguajes de programacin han avanzado considerablemente hacia su condicin actual, y como resultado, el estudio y la invencin de lenguajes de programacin se ha perdido mucho de su entusiasmo. Muchos cientficos creativos de la computacin han retirado de la invencin de lenguajes para inventar herramientas para describirlos El propsito de este artculo son dos: en primer lugar, que sugieren que los defectos bsicos en el marco de los lenguajes convencionales hacen su debilidad expresiva y su crecimiento canceroso inevitable, y segundo, para sugerir algunas vas alternas de exploracin hacia el diseo de nuevos tipos de lenguajes.

2.

Modelos de Sistemas Informticos

Cada lenguaje de programacin es un modelo de un sistema de computacin que se traducen como modelos con abstracciones puras, representados por hardware y otros mediante la compilacin de programas de interpretacin.

3.

Computadoras Von Neumann

Se compone de tres partes: una unidad central de procesamiento (CPU), una unidad de almacenamiento y un tubo de conexin (cuello de botella) que pueda transmitir datos entre la CPU y la unidad de almacenamiento. La tarea de un programa es cambiar el contenido de la unidad de almacenamiento de alguna manera, si se considera que esta tarea debe llevarse a cabo en su totalidad por el bombeo de una sola palabra de ida y vuelta a travs del cuello de botella de von Neumann, la razn de su nombre se aclara,, una gran parte del trfico en el cuello de botella no son datos tiles sino simplemente nombres de los datos , as como las operaciones y datos utiliza slo para calcular dichos nombres, antes de que una palabra se pueda enviar a travs del bus de su direccin debe estar en la CPU , por lo que debe ser enviado ya sea a travs del tubo de la unidad o ser generado por algunos CPU operacin . Si la direccin se enva desde el almacenamiento, a continuacin, la direccin deber bien haber sido generada en el CPU, y as sucesivamente. Es decir, enciende el ordenador y obtiene la siguiente instruccin desde la memoria en la direccin indicada por el contador de programa y la guarda en el registro de

instruccin, aumenta el contador de programa en la longitud de la instruccin para apuntar a la siguiente, decodifica la instruccin mediante la unidad de control. sta se encarga de coordinar el resto de componentes del ordenador para realizar una funcin determinada, y por ltimo se ejecuta la instruccin. sta puede cambiar el valor del contador del programa, permitiendo as operaciones repetitivas. El contador puede cambiar tambin cuando se cumpla una cierta condicin aritmtica, haciendo que el ordenador pueda tomar decisiones, que pueden alcanzar cualquier grado de complejidad, mediante la aritmtica y lgica anteriores. Irnicamente, una gran parte del trfico en el cuello de botella no son datos tiles sino simplemente nombres de los datos as como las operaciones y datos utiliza slo para calcular dichos nombres. Seguramente debe haber una manera menos primitiva de hacer grandes cambios en el almacn que empujando un gran nmero de palabras de ida y vuelta a travs del cuello de botella de von Neumann.

4.

Idiomas de Von Neumann

Los lenguajes de programacin son bsicamente de alto nivel y existen diferentes tipos de versiones del equipo de Von Neumann as como del tipo de lenguaje de programacin, por ejemplo las diferencias entre los lenguajes Fortran y Algol 68 es menos importante que el hecho de que ambos se basan en el estilo de programacin de la computadora de Von Neumann. Este utiliza variables para utilizar e imitar las clulas de almacenamiento de la computadora; utilizan sentencias de control donde se elaboran instrucciones de salto y de prueba y las sentencias de asignacin que tiene que ir a buscar, a procesar y a ser ejecutadas. Por ejemplo en un programa tpico donde existen una serie de sentencias de asignacin que contienen variables, donde cada instruccin de asignacin produce un resultado, el programa debe provocar que estas declaraciones debe de ser ejecutado varias veces, el programador es por lo tanto quien disea el flujo de esas instrucciones y de qu manera se irn ejecutando cada una. Las sentencias de la programacin se dividen en dos mundos: El primer mundo comprende los lados derechos de las sentencias de asignacin, es un mundo ordenado y comprende las propiedades algebraicas tiles. Es el mundo en el que el clculo ms til tiene lugar. El segundo mundo es el mundo de las declaraciones, con pocas propiedades matemticas tiles, logra poco en atacar los problemas fundamentales creados por el estilo de la palabra en un tiempo, con su uso de bucles, subndices y la ramificacin del flujo de control.

Nuestra obsesin por los lenguajes de von Neumann ha continuado desde la primera computadora de von Neumann, y nuestra dependencia en que ha hecho los no lenguajes de von Neumann anti-econmico y ha limitado su desarrollo. Unos de los principales problemas de la Computadora de Von Neumann es la falta de almacenamiento y debido a esto la mayora de los sistemas aplicativos emplean la operacin de sustitucin del clculo lambda como su funcionamiento bsico. Esta operacin es una de un poder prcticamente ilimitado, pero su realizacin completa y eficiente, conlleva grandes dificultades para el diseador de la mquina.

5.

Programa Neuuman para Inner producto


C:=0 fori .~ I step 1 until n do c := c + a[i]xb[i] Propiedades: a) Sus declaraciones operan en un estado de acuerdo a reglas complejas b) No es jerrquica, excepto para el lado derecho de la instruccin de asignacin, que no construye entidades complejas a partir de otras ms simples c) Es dinmico y repetitivo d) Calcula la palabra- en -un-tiempo por la repeticin (de la asignacin) y por la modificacin (de i variable). e) Una parte de los datos, n, es en el programa, por lo que carece de generalidad y slo funciona para los vectores de longitud n. f) Nombra sus argumentos dispersos (en el de declaracin y los subndices en la asignacin). g) Las operaciones de "mantenimiento" estn representados por smbolos en lugares

5.2

Programa funcional para Inner Product


Def Innerproduct -= (Insert +)o(ApplyToAll x)oTranspose Or, in abbreviated form: Def IP -= (/+)o(ax)oTrans.

Composicion (o), Insert (/), Aplicar (a) son las formas funcionales que combinan las existentes para crear otras nuevas. IP:<< 1,2,3>, <6,5,4>> = Definition of IP ~ (/+)o(c~x)oTrans: << 1,2,3>, <6,5,4>> Effect of composition, o ~ (/+):((ax):(Trans: << 1,2,3>, <6,5,4>>)) Applying Transpose Effect of ApplyToAll, et Applying x Effect of Insert, / Applying + Applying + again (/+):((ax): << 1,6>, <2,5>, <3,4>>) (/+): <x: <1,6>, : <2,5>, x: <3,4>> (/+): <6,10,12> +: <6, +: <10,12>> +: <6,22> 28

Vamos a comparar las propiedades de este programa con los del programa de von Neumann. a) opera slo en sus argumentos. No hay estados ocultos o reglas de transicin complejas. Slo hay dos tipos de reglas, uno para aplicar una funcin a su argumento, el otro para la obtencin de la funcin indicada por una forma funcional, como la composicin, la niebla, o ApplyToAll, af, cuando uno conoce las funciones f y g, los parmetros de las formas. b) Es jerrquica, que se construye a partir de tres funciones ms simples (+, x, Trans) y tres formas funcionales niebla, af y / f. c) Es esttico y no repetitivo, en el sentido de que su estructura es til para entender que sin mentalmente ejecutarlo. Por ejemplo, si se entiende la accin de la niebla formas y af y de las funciones x y Trans, entonces uno entiende la accin de hacha y de (c ~ x) o Trans, y as sucesivamente. d) Se opera en las unidades conceptuales enteras, no palabras, sino que tiene tres pasos. e) No se incorpora ningn dato, sino que es completamente general, funciona para cualquier par de vectores. f) No nombra sus argumentos, sino que se puede aplicar a cualquier par de vectores sin ninguna declaracin de procedimiento o reglas de sustitucin complejas.

g) Se emplea formas de limpieza y funciones que son generalmente tiles en muchos otros programas, de hecho, slo + y X no estn preocupados con la limpieza. Estas formas y funciones se pueden combinar con otros para crear operadores de limpieza de alto nivel.

6.

Marcos de Idiomas frente a variables intercambiables

Se distinguen dos partes de un lenguaje de programacin es el marco que da las reglas generales del sistema, y segundo el marco que da las reglas generales del sistema, sus partes variables cuya existencia esta prevista por el marco del comportamiento particular. As el marco de una lengua describe sus caractersticas fijas y proporciona un entorno general. Los idiomas Von Neumann pueden tener una inmensa estructura, por lo que requiere que las palabras fluyan de ida y de vuelta al estado, al igual que el fluir a travs del cuello de botella de Von Neumann, as Von Idioma Neumann debe tener una semntica estrechamente acoplados en el que se detalle el clculo de donde cambia el estado. Por lo tanto todas las caractersticas de Von Neumann obligan a ser explicado en detalle, adems necesitan ms caractersticas complejas para apuntalar el estilo bsicamente rgido.

7.

Piezas intercambiables y formas compuestas

El segundo problema de las lenguas von Neumann es que sus partes variables tienen tan poco poder expresivo. Su tamao enorme es una prueba elocuente de esto, despus de todo, si el diseador saba que todas esas caractersticas complicadas, que ahora se construye en el marco, se podran aadir ms adelante como partes intercambiables. El elemento ms importante en la prestacin de poderosas piezas cambiables en un idioma es la disponibilidad de la combinacin de formas que se pueden utilizar en general al construir nuevos procedimientos de los antiguos, lenguajes como Von Neumann proporcionan formas compuestas solo primitivas y el marco de Von Neumann presenta obstculos para su pleno uso. Un obstculo para el uso de la combinacin de las formas es la divisin entre el mundo de expresin y el mundo comunicado en idiomas von Neumann. Para ayudar a ensamblar el resultado global de las palabras individuales idiomas proporcionan algunas formas que combinan primitivos en el mundo - la declaracin for, while y sentencias if- then-else - pero la divisin entre los dos mundos impide que las formas que combinan en cualquier mundo de alcanzar la mxima potencia que pueden lograr en un mundo dividido. Un segundo obstculo para el uso de la combinacin de formas es el uso de nombres, que se complica an ms por la situacin de normas requeridas en la llamada procedimientos. Cada uno de estos requiere un mecanismo complejo para ser incorporado en el marco para que las

variables, las variables con subndices, punteros, parmetros formales y dems puedan ser interpretadas correctamente, todos estos nombres, convenciones y reglas interfieren con el uso de combinacin de formas.

8.

APL frente Palabra-en un-tiempo de programacin

En estas se pueden almacenar matrices, as que su asignacin puede llegar a ser muy extendida, ms sin embargo todava APL divide la programacin en un mundo de expresiones y un mundo de declaraciones, as el esfuerzo de escribir programas de una lnea es motivado en parte por el deseo de permanecer del mundo de las expresiones. Tiene tres formas funcionales llamadas producto escalar, producto exterior y la reduccin. Estas son a veces difciles de usar, no hay suficiente de ellos y su uso se limita a la del mundo de expresiones. La semntica APL est estrechamente acoplada a los estados y en consecuencia a pesar de la mayor simplicidad y poder de la lengua, su marco tiene la complejidad y la rigidez caracterstica de los idiomas de Von Neumann.

9.

Von Neumann Idiomas carentes de propiedades matemticas tiles

Otro defecto importante es la falta de propiedades matemticas tiles y los obstculos que se presentan para el razonamiento sobre los programas. Los lenguajes von Neumann casi no tienen propiedades que son tiles en esta direccin y que tienen muchas propiedades que son obstculos Semntica denotativa, proporcionan una comprensin matemtica muy til de los dominios y espacios de funciones implcitas en programas, cuando se aplica su funcin es porque va a ofrecer herramientas poderosas para describir el lenguaje y para probar las propiedades de los programas, aunque la complejidad del lenguaje se refleja en la complejidad de la descripcin que es una coleccin de producciones, dominios, funciones y ecuaciones que son ms tiles como pruebas de los hechos acerca de los programas de referencia de la lengua ya que la hace menos ambigua. Semntica axiomtica, reafirma precisamente las propiedades de los programas Von Neumann, es decir las transformaciones de los estados como transformaciones en los predicados, la complejidad de los axiomas hace que los xitos de sus practicantes sean ms admirables. Su xito se basa en dos factores, en primer lugar est restringido a los pequeos subconjuntos, dbiles del idioma Von Neumann que tienen estados muy simples, en segundo lugar el nuevo campo (predicados y sus transformaciones) que debe de ser ms ordenado y eficaz que el de los estados y sus transformaciones, pero su restriccin hace que no le permita manejar programas

reales ni eliminar las propiedades torpes de la base de Von Neumann. La semntica axiomtica se extiende a cubrir ms de un lenguaje tpico de Von Neumann, comienza a perder su eficacia y complejidad cada vez mas segn lo que se valla requiriendo. Por lo tanto las semnticas denotativas y axiomticas son formalismos descriptivos cuyos cimientos encarnar conceptos elegantes y potentes, pero su utilizacin para describir el lenguaje a von Neumann no puede producir un lenguaje elegante y potente como tampoco el uso de las mquinas elegantes y modernas. En cualquier caso las pruebas acerca de los programas utilizan el lenguaje de la lgica, no el lenguaje de programacin. Las pruebas hablan acerca de los programas pero no pueden involucrarlos directamente desde los axiomas de idiomas, por el contrario se derivan por mtodos algebraicos. Por ejemplo, para resolver la ecuacin ax + bx = a + b Para x ( dado que a + b # 0 ) , aplicamos mecnicamente distribucin de identidad y cancelacin para obtener: (A+B)x=a+b (A+B)x=(a+b)L x = l. As queda demostr que x=1 sin salir del lenguaje del algebra, de esta misma forma Von Neumann. Esta lgebra se puede usar para transformar los programas y resolver algunas ecuaciones cuyas "incgnitas" son los programas, de la misma manera en que uno resuelve ecuaciones de lgebra en la secundaria.

10.

Alternativas de los Idiomas de Von Neumann

En la ejecucin de un permiso de un programa a afectar el comportamiento de otro posterior a menos que el primer programa se puede cambiar y el segundo pueda acceder. Pero esto no significa que cada clculo debe depender en gran medida de un estado complejo, con muchos cambios de estado se requieren para cada pequea parte del clculo (como en lenguajes von Neumann). Se renen cuatro elementos

a) b) c)

Un estilo funcional de programacin sin variables Un algebra de los programas funcionales. Un algebra cuyas variables denoten programas Un sistema de programacin funcional formal,. Un Sistema oficial (FFP) que ampli las

funcionales de PF y cuyas operaciones sean formas funcionales de PF

capacidades de los sistemas de FP informales anteriores, un sistema de FFP es por lo tanto un sistema definido con precisin que proporciona la capacidad de utilizar el estilo de programacin funcional de los sistemas de FP y su algebra de los programas. d) Los Sistemas de Transicin de estado Aplicativo.

11.

Sistemas de Programacin Funcional (Sistemas de FP)

Un sistema de FP se basa en el uso de un conjunto fijo de la combinacin de formas llamadas formas funcionales. Todas las funciones de un sistema de FP son de un tipo: se asignan los objetos en objetos y siempre toman un solo argumento. Un sistema basado en clculo lambda se basa en el uso de la expresin lambda, con un conjunto asociado de reglas de sustitucin para las variables, para la construccin de nuevas funciones. La expresin lambda (con sus reglas de sustitucin) es capaz de definir todas las posibles funciones computables de todos los tipos posibles y de cualquier nmero de argumentos. Es anlogo a la potencia de las sentencias de control sin restricciones en los lenguajes convencionales: con la libertad sin restricciones. La programacin estructurada evita muchas sentencias de control para obtener programas con estructura ms simple, mejores propiedades y mtodos uniformes para la comprensin de su comportamiento, por lo que la programacin funcional evita la expresin lambda, sustitucin, y varios tipos de funciones. Estos programas son tan estructurados que su comportamiento a menudo puede ser comprendido y demostrado por el uso mecnico de las tcnicas algebraicas similares a los utilizados en la solucin de problemas de lgebra a diferencia de la mayora de la programacin constructos, no tienen necesariamente que ser elegidos sobre una base.

11.2 Descripcin
Un sistema de FP comprende lo siguiente: l) un conjunto O de los objetos; 2) un conjunto F de las funciones f que el mapa de objetos en objetos ; 3) una operacin, aplicacin;

4) un conjunto F de formas funcionales, los cuales se utilizan para combinar funciones existentes, u objetos, para formar nuevas funciones en F; 5) un conjunto D de las definiciones que definen algunas funciones en F y asignar un nombre a cada uno, lo que sigue es una descripcin informal de cada uno de las entidades anteriores con ejemplos.

11.2.1 Objetos , O.
Un objeto x es un tomo, una secuencia <x~ ...., Xn> cuyos elementos xi son objetos , o ( "abajo " o "indefinido" ) . As, la eleccin de un conjunto A de tomos determina el conjunto de objetos. El tomo de ~ se utiliza para denotar la secuencia de vaco y es el nico objeto que es a la vez un tomo y una secuencia. Los tomos T y F se usan para denotar " verdadero" y " falso".

11.2.2 Aplicacin
Un sistema de FP tiene una sola operacin, aplicacin. Si f es una funcin y x es un objeto, entonces f : x es una aplicacin y denota el objeto que es el resultado de aplicar f a x. f es el operador de la aplicacin y x es el operando .

11.2.3 Funciones, F
Cada funcin en F es ya sea primitivo, es decir, se suministra con el sistema, o que se define o es una forma funcional. A veces es til distinguir entre dos casos en which f : x = . Si el clculo de ac para all: x terminadas y produce el objeto _1_ , nos sayfis definida para x , es decir, termina f pero no tiene ningn valor significativo en x . De lo contrario, sayfis no terminacin en x .

11.2.4 formas funcionales, F


Una forma funcional es una expresin que denota una funcin; que la funcin depende de las funciones u objetos que son los parmetros de la expresin. Algunas formas funcionales pueden tener objetos como parmetros. Los corchetes [...] se utilizan para indicar la forma funcional para la construccin, lo que denota una funcin, mientras que entre parntesis angulares <...> denotan secuencias, que son objetos. Los parntesis se utilizan tanto en particular, formas funcionales y generalmente para indicar agrupacin. Las expresiones condicionales (se utiliza fuera de los sistemas de FP para describir sus funciones) y la forma condicin funcional se identifican por tanto "--- ~".

11.2.5 Definiciones

Una definicin en un sistema de FP es una expresin de la forma: Def l r Dnde: el lado izquierdo 1 es un smbolo de funcin no utilizado y el lado derecho r es una forma funcional (que puede depender de /). Un conjunto D de las definiciones est bien formado, si no hay dos lados izquierdos son los mismos.

11.2.6 Semntica.
Se puede apreciar de lo anterior que un sistema de FP est determinado por la eleccin de los siguientes conjuntos: (a) el conjunto de tomos de A (que determina el conjunto de objetos). (B) El conjunto de funciones primitivas P. (c) El conjunto de formas funcionales F. (d) Un conjunto bien formado de definiciones D. Para entender la semntica de un sistema de este tipo es necesario saber cmo calcular f: x para cualquier funcin f y cualquier objeto x del sistema. Hay exactamente cuatro posibilidades para f: (L) de la FIS una funcin primitiva; (2) fis una forma funcional, (3) hay una definicin en el D, Deff-r, y (4) ninguna de las anteriores. Si f es una funcin primitiva, entonces uno tiene su descripcin

11.4 Comentarios Sobre Sistemas FP 11.4.1 Sistemas de FP como lenguajes de programacin.


Los sistemas son tan mnimos que algunos lectores pueden encontrarlo difcil de verlos como lenguajes de programacin. Visto como tal, una funcin f de un programa, un objeto x es el contenido de la tienda, y f: x es el contenido de la tienda despus de programa FIS activa con x en la tienda. Las funciones primitivas y las formas funcionales que ofrece el sistema son los enunciados bsicos de un lenguaje de programacin en particular. Por lo tanto, dependiendo de la eleccin de funciones primitivas y formas funcionales, el marco FP proporciona para una gran clase de idiomas con varios estilos y capacidades.

11.4.2 Limitaciones de sistemas FP.

Tienen una serie de limitaciones. Por ejemplo, un sistema de FP dado es un lenguaje fijo, no es sensible a la historia: ningn programa puede alterar la biblioteca de programas. Se puede tratar a la entrada y salida slo en el sentido de que x es un insumo andf : x es la salida . Tampoco no puede calcular un programa desde las expresiones de funcin no son objetos. Tampoco se puede definir nuevas formas funcionales dentro de un sistema de FP. La principal limitacin de los sistemas de FP es que no son historia sensible. Por lo tanto, deben ampliarse de alguna manera antes de que puedan llegar a ser til en la prctica.

11.4.4 Ventajas de sistemas FP.


La razn principal de los sistemas de FP son considerablemente ms simple que cualquiera de los lenguajes convencionales o lenguajes basados lambda -clculo - es que utilizan slo el sistema ms elemental fijo de nombres con una regla fija sencilla de sustituir una funcin para su nombre tambin permiten la definicin de los diferentes sistemas de para diversos fines y que tratan a nombres como funciones que se pueden combinar con otras funciones sin tratamiento especial.

12. El lgebra de Programas para Sistemas FP


A pesar de su sencillez, puede ayudar a entender y probar cosas acerca de los programas de una manera sistemtica, y no mecnica. El lgebra de los programas de ms abajo puede ser un punto de partida para una disciplina de tal prueba, junto con la labor en curso sobre manipulacin algebraica, sino que tambin puede ayudar a proporcionar una base para la automatizacin de algunos de que la disciplina. Una ventaja de esta lgebra sobre otras tcnicas de demostracin es que el programador puede utilizar el lenguaje de programacin como el idioma para derivar las pruebas, en lugar de tener que pruebas estatales en un sistema lgico separado que slo habla de sus programas y los programas son las leyes y teoremas que afirman que una expresin de funcin es igual a otra. Sin embargo, tambin queremos utilizar estas leyes para resolver ecuaciones en las que aparece una funcin de "desconocido" a ambos lados de la ecuacin. Por lo tanto, para dar un significado nico a las soluciones de tales ecuaciones, se requerir una fundacin para el lgebra de los programas) para asegurarnos de que las soluciones obtenidas mediante manipulacin algebraica son de hecho menos, y por lo tanto, nico, soluciones

13. Sistemas formales de programacin funcional (Sistemas FFP)

Un sistema de FP tiene un conjunto de funciones que depende de su conjunto de funciones primitivas, su conjunto de formas funcionales, y su conjunto de definiciones. En los sistemas de FFP se puede crear nuevas formas funcionales. Formas funcionales estn representados por secuencias de objetos; el primer elemento de una secuencia determina que forman representa, mientras que los elementos restantes son los parmetros de la forma. La capacidad de definir nuevas formas funcionales en los sistemas de FFP es una de las consecuencias de la principal diferencia entre ellos y los sistemas de FP: en los sistemas de FFP se utilizan objetos "representar" a las funciones de una manera sistemtica.

13.3.3 Resumen de las propiedades de p y p


Se mostr como los mapas p tomos y las secuencias en las funciones y cmo esas funciones mapa objetos en expresiones. En realidad, P y todas las funciones de FFP pueden ser extendidos de manera que se definen para todas las expresiones. Con este tipo de extensiones de las propiedades de p y / ~ se pueden resumir de la siguiente manera: 1. # E [ expresiones ~ objetos ] . 2. 3. 4. 5. 6. 7. Si x es un objeto , / ~ x = x . Si e es una expresin y e = < EL . . . . . es> , entonces / ~ e - < # el , ..., / ten > . p E [ expresiones ---> ] expresiones ---> expresiones ] ] . Para cualquier expresin e, pe --- p ~ e). Si x es un objeto y E una expresin, a continuacin, px : e = px : ~ e). Si x e y son objetos, entonces # ( x: y) = # ( pxeles : y). En palabras: el significado de una aplicacin FFP ( x: y ) se encuentra mediante la aplicacin de pxeles, la funcin representada por x , y y a continuacin, encontrar el significado de la expresin resultante ( que normalmente es un objeto y es entonces su propio significado ) .

13.3.4 Las clulas, ir a buscar, y almacenamiento


Para introducir funciones de denominacin, es decir, la capacidad de recuperar el contenido de una celda con un nombre dado de una tienda (una secuencia de clulas) y para almacenar una celda con nombre y el contenido determinado en una secuencia de este tipo, se introduce objetos llamados clulas y dos nuevas formas funcionales, ir a buscar y almacenar.

Clulas
Una clula es un <CELL, triples nombre, contents>. Utilizamos esta forma en lugar del par contents> <nombre, para que ceils se pueden distinguir de los pares normales. Buscar la forma funcional traiga toma un objeto como n itsparameter (n es habitualmente un tomo que acta como un nombre).

Ir a buscar
La forma funcional traiga toma un objeto como parmetro n (n es habitualmente un tomo que acta como un nombre), sino que se escribe ~ 'n (lase "fetch n"). Su definicin de los objetos n y x es:
"rn:x --- x = ~ ---> #; atom:x ~ 3-; (l:x) = <CELL,n,c>---> c; l'notl:x,

14. Sistemas de transicin de estado aplicativos (Sistemas AST)


Hay que destacar una vez ms que estos sistemas de transicin de estado aplicativos estn adelante no ponen los sistemas de programacin como prcticos en su forma actual , sino como ejemplos de una clase en la que la programacin de estilo aplicativo est disponible en una historia sensible , pero el sistema von Neumann y estn dbilmente acoplados a los estados y dependen de un sistema aplicativo subyacente tanto para su lenguaje de programacin y la descripcin de sus transiciones de estado.

14.2 La Estructura de Algol comparacin con la de los sistemas de AST


Un programa de Algol es una secuencia de sentencias, cada una representando una transformacin del Estado Algol, que es un complejo de repositorio de informacin sobre el estado de varias pilas, punteros y asignaciones de variables de identificadores en los valores, etc. Cada declaracin se comunica con esto constantemente cambiar el estado por medio de protocolos complicados peculiares a s mismo e incluso a sus diferentes partes (por ejemplo, el protocolo asociado a la variable x depende de su ocurrencia a la izquierda o a la derecha de una asignacin, en una declaracin, como parmetro, etc. El " significado " de un programa de Algol debe darse en trminos del efecto total de un gran nmero de comunicaciones con el Estado a travs del cable y sus protocolos (adems de un medio para identificar la salida y la insercin de la entrada en el estado). As declaraciones Algol son mensajes complejos con partes dependientes del contexto que mordisquean lejos en el estado. Cada parte transmite informacin hacia y desde el estado a travs del cable por sus propios protocolos.

Los sistemas AST cumplen con que la semntica no dependa de una serie de protocolos barrocos para la comunicacin con el Estado, y queremos ser capaces de hacer grandes transformaciones en el estado de la aplicacin de las funciones generales y su semntica tiene dos protocolos para la obtencin de informacin por parte del Estado: (1) obtener de ella la definicin de una funcin que se aplicar, y (2) obtener todo el Estado mismo. Hay un protocolo para cambiar el estado de: calcular el nuevo estado de aplicacin de funcin. La estructura de un estado AST est ligeramente restringido por uno de sus protocolos: Debe ser posible identificar una definicin (es decir, de clulas) en el mismo. Su estructura - es una secuencia - es mucho ms simple que la del estado de Algol.

14.3 Estructura de un Sistema de AST


Un sistema de AST se compone de tres elementos: 1. Un subsistema de aplicativo (tal como un sistema de FFP). 2. A D estado que es el conjunto de definiciones del subsistema aplicativo. 3. Un conjunto de reglas de transicin que describen cmo los insumos se transforman en salidas y cmo se cambia el estado D.

14.5 Observaciones sobre los sistemas de AST


En cualquier caso, una serie de observaciones se aplican a cualquier sistema AST razonable: a) Un estado de transicin que ocurre una vez al gran cmputo y puede tener propiedades matemticas tiles. b) Los programas estn escritos en un lenguaje aplicativo que puede acomodar una gran variedad de piezas intercambiables, piezas cuyo poder y flexibilidad superior a la de cualquier lenguaje de von Neumann hasta ahora. c) Dado que el Estado no puede cambiar durante el clculo del sistema : x , no hay efectos secundarios. d) Al definir las funciones apropiadas uno puede, creo, introducir importantes novedades en cualquier momento, utilizando el mismo marco. Tales caractersticas se deben construir en el marco de un lenguaje von Neumann. e) El marco de un sistema AST comprende la sintaxis y la semntica del sistema aplicativo subyacente ms el marco del sistema esbozado anteriormente.

14.7 Asignacin de nombres de sistemas en modelos de AST y von Neumann

Con sistemas de nombres individuales pueden ser utilizados en un programa. Una celda en una tienda puede contener toda otra tienda. Lo importante de sistemas de nombres de AST es que utilizan la naturaleza funcional de los nombres. Por lo tanto funciones de nombre se pueden componer y se combinan con otras funciones de formas funcionales. Por el contrario, las funciones y los nombres en lenguas von Neumann son generalmente conceptos disjuntos y la naturaleza - funcionan como de los nombres es casi totalmente ocultos e intil, porque: a) los nombres no se pueden aplicar como funciones, b) no existen medios generales para combinar nombres con otros nombres y funciones; c) los objetos a los que se aplican las funciones de nombre (tiendas) no son accesibles como objetos.

15. Observaciones sobre el diseo del ordenador


El dominio de idiomas von Neumann ha dejado diseadores con pocos modelos intelectuales para los diseos prcticos de informtica ms all de las variaciones de la computadora de von Neumann. Las reglas de sustitucin de lenguajes basados lambda -clculo presentan serios problemas para el diseador de la mquina. Berkling ha desarrollado un clculo lambda modificado que tiene tres tipos de aplicaciones y que hace que el cambio de nombre de variables innecesarios. l ha desarrollado una mquina para evaluar las expresiones de este lenguaje. Mag ha desarrollado una nueva mquina aplicativa construida a partir de componentes idnticos (de dos tipos). Se evala, directamente, FP -como y otras expresiones aplicativas de abajo hacia arriba. Hay numerosos indicios de que el estilo aplicativo de programacin puede ser ms poderoso que el estilo de von Neumann. Por eso es importante para los programadores para desarrollar una nueva clase de modelos de historia sensible de los sistemas informticos que encarnan un estilo tal y evitar los problemas de eficiencia inherentes que parecen unir a los sistemas basados en lambda -clculo.

Que ya conoca
Los lenguajes de alto nivel. La arquitectura de la mquina de von Neumann Parte del algebra que manejan-

Que no conoca
El lenguaje de algol68 y fortran. La sintaxis de estos lenguajes los desconozco. Mucho de lo que se menciona en el documento desconoca

Que me gustara agregarle o mejorar


El artculo maneja tecnicismos en ingles lo cual hace difcil de traducir. Me gustara agregar desde la arquitectura de von Neumann as como su lenguaje para que fuera ms fcil la comparacin as como el entendimientos con los otros sistemas.