sarabander programs precios paraguay online lista formulario computer and sicp

programs - sicp pdf



Conceptos que te sorprendieron cuando leĆ­ste SICP? (11)

El que pensé que era realmente genial fue el de las transmisiones con una evaluación retrasada. El de generar primos fue algo que pensé que era realmente bueno. Como un dispensador "PEZ" que dispensa mágicamente el siguiente primo en la secuencia.

SICP - "Estructura e Interpretación de Programas de Computación"

Explicación de lo mismo sería bueno

¿Puede alguien explicar sobre Abstracción Metalingüística?


SICP realmente llevó a casa el punto de que es posible ver el código y los datos como la misma cosa.

Lo entendí antes cuando pienso en las máquinas universales de Turing (la entrada a un UTM es solo una representación de un programa) o la arquitectura de von Neumann (donde una única estructura de almacenamiento contiene código y datos), pero el SICP dejó la idea mucho más clara . Scheme (Lisp) ayudó aquí, ya que la sintaxis de un programa es exactamente la misma que la sintaxis de las listas en general, es decir, las expresiones S.

Una vez que tiene la "equivalencia" de código y datos, de repente muchas cosas se vuelven fáciles. Por ejemplo, puede escribir programas que tienen diferentes métodos de evaluación (perezoso, no determinista, etc. ). Anteriormente, podría haber pensado que esto requeriría una extensión del lenguaje de programación; en realidad, puedo agregarlo al lenguaje yo mismo, lo que permite que el lenguaje central sea mínimo. Como otro ejemplo, puede implementar de manera similar un marco orientado a objetos; nuevamente, esto es algo que ingenuamente podría haber pensado que requeriría modificar el lenguaje.

A propósito, una cosa que desearía que SICP hubiera mencionado más: tipos. La comprobación de tipos en tiempo de compilación es algo sorprendente. La implementación del SICP de la programación orientada a objetos no tuvo este beneficio.


Todavía no leí ese libro, solo he visto los cursos de video, pero me enseñó mucho. Las funciones como ciudadanos de primera clase me dejaron boquiabierto. Ejecutar una "variable" era algo muy nuevo para mí. Después de ver esos videos de la forma en que ahora veo JavaScript y la programación en general, ha cambiado mucho.

Oh, creo que he mentido, lo que realmente me sorprendió fue que + era una función.


Un concepto con el que no estaba familiarizado era la idea de corutinas , es decir, tener dos funciones haciendo trabajo complementario y tener el control de flujo del programa alternado entre ellas.


Un ejemplo de "la información y el código son lo mismo" de la respuesta de A. Rex me llevó de una manera muy profunda.

Cuando volví a enseñarle a Lisp en Rusia, nuestros profesores nos dijeron que el lenguaje era sobre listas: auto, cdr, contras. Lo que realmente me sorprendió fue el hecho de que no necesitas esas funciones en absoluto; puedes escribir tus propios cierres dados. Entonces, ¡Lisp no se trata de listas después de todo! eso fue una gran sorpresa.


Creo que lo más sorprendente del SICP es ver cómo se requieren realmente algunos primitivos para hacer un lenguaje completo de Turing: casi cualquier cosa puede construirse a partir de casi nada.

Como estamos discutiendo el SICP, pondré mi enchufe estándar para las conferencias de video en http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ , que son la mejor introducción a Computación que podría esperar obtener en 20 horas.


Sentí Recursión en sentido diferente luego de leer algunos de los capítulos del SICP


Todavía estaba en la escuela secundaria cuando leí el SICP, y me había centrado en el primer y segundo capítulo. Para mí en ese momento, me gustó que pudieras expresar todas esas ideas matemáticas en código, y hacer que la computadora hiciera la mayor parte del trabajo sucio.

Cuando estaba dando clases particulares sobre el SICP, me impresionaron diferentes aspectos. Por un lado, el enigma de que los datos y el código son realmente lo mismo, porque el código es datos ejecutables. El capítulo sobre abstracciones metalingüísticas es alucinante para muchos y tiene muchos mensajes para llevar a casa. El primero es que todas las reglas son arbitrarias. Esto molesta a algunos estudiantes, especialmente aquellos que son físicos de corazón. Creo que la belleza no está en las reglas mismas, sino en el estudio de las consecuencias de las reglas. Un cambio de una línea en el código puede significar la diferencia entre el alcance léxico y el alcance dinámico.

Hoy, aunque el SICP sigue siendo divertido y perspicaz para muchos, entiendo que se está volviendo anticuado. Por un lado, no enseña habilidades y herramientas de depuración (incluyo sistemas de tipo allí), que es esencial para trabajar en los gigantescos sistemas actuales.


Cierres

Viniendo de un trasfondo primordialmente imperativo (Java, C #, etc., solo leí el SICP hace un año o más por primera vez, y lo estoy volviendo a leer ahora), pensar en términos funcionales fue una gran revelación para mí; cambió totalmente mi forma de pensar sobre mi trabajo de hoy.


Me sorprendió lo fácil que es implementar idiomas. Ese podría escribir un intérprete para Scheme en una pizarra.


Ahora mismo estoy en la sección "Secuencias como interfaces convencionales" y he encontrado el concepto de procedimientos como ciudadanos de primera clase bastante fascinante. Además, la aplicación de la recursividad es algo que nunca he visto en ningún idioma.