Концепции, которые удивили вас, когда вы читаете SICP?

голоса
10

SICP - «Структура и интерпретация компьютерных программ»

Объяснение же самое было бы неплохо

Может кто - нибудь объяснить о металингвистических абстракции

Задан 10/12/2008 в 09:21
источник пользователем
На других языках...                            


11 ответов

голоса
20

SICP действительно поехал домой точки, что можно посмотреть на код и данные, как то же самое.

Я понял это раньше, когда речь идет об универсальных машинах Тьюринга (вход в UTM просто представление программы) или архитектура фон Неймана (где одна структура хранения данных имеет как код и данные), но SICP сделали идею гораздо более ясно , Схема (Lisp) помогла здесь, как синтаксис для программы точно так же, как и синтаксис для списков в целом, а именно S-выражений.

Если у вас есть «эквивалентность» кода и данных, вдруг многое стало легко. Например, вы можете писать программы , которые имеют различные методы оценки (ленивые, недетерминировано, и т.д. ). Раньше я мог бы подумать , что для этого потребуется расширение языка программирования; на самом деле, я могу просто добавить его на язык сам, тем самым позволяя язык ядра быть минимальным. В качестве другого примера можно аналогичным образом реализовать объектно-ориентированную структуру; опять же , это то , что я мог бы наивно думал , что потребует изменения языка.

Кстати, одна вещь , которую я хочу SICP упомянул больше: типы. Тип проверки при компиляции времени удивительная вещь. Реализация SICP объектно-ориентированного программирования , не имеют этого преимущества.

Ответил 27/01/2009 в 14:10
источник пользователем

голоса
8

Я не читал эту книгу, тем не менее, я только смотрел на видео курсы, но он научил меня многому. Функции как первые граждане класса была сногсшибательной для меня. Выполнение «переменной» было что-то очень новое для меня. После просмотра таких видео, как я теперь вижу JavaScript и программирование вообще сильно изменился.

О, я думаю, что я солгал, вещь, которая действительно меня поразило, что + была функция.

Ответил 27/01/2009 в 11:06
источник пользователем

голоса
5

Я думаю, что самое удивительное в SICP, чтобы увидеть, как мало примитивы на самом деле требуется, чтобы сделать Тьюринга язык - почти все, что может быть построен практически с нуля.

Поскольку речь идет о SICP, я положу в моем стандартном штекере для видео лекции в http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ , которые являются лучшим Введением Компьютерные науки можно надеяться получить в 20 часов.

Ответил 28/01/2009 в 18:15
источник пользователем

голоса
4

Одним из примеров «данных и кода одно и то же» от ответа А. Рекс получил меня в очень глубокий путь.

Когда я учил Лисп назад в России, наши учителя говорили нам, что язык был о списках: автомобиль, ОКО, минусы. Что действительно поразило меня было то, что вам не нужны эти функции на всех - вы можете написать свои собственные, данные замыкания. Таким образом, Лисп не о списках в конце концов! Это был большой сюрприз.

Ответил 27/01/2009 в 14:32
источник пользователем

голоса
4

Тот , который я думал , было действительно круто было потоки с задержкой оценки. Один о генерации простых чисел было то , что я думал , было очень аккуратно. Как «PEZ» дозатор , который волшебным образом распределяет следующий штрих в последовательности.

Ответил 27/01/2009 в 14:23
источник пользователем

голоса
3

Концепцией Я был совершенно не знаком с была идеей сопрограмм , т.е. имеет две функции делать дополнительную работу и с управлением потоком программы чередуется между ними.

Ответил 27/01/2009 в 11:51
источник пользователем

голоса
2

Я был еще в средней школе, когда я прочитал SICP, и я была сосредоточена на первой и второй главах. Для меня в то время, мне понравилось, что вы могли бы выразить все эти математические идеи в коде, и есть компьютер, делают большую часть грязной работы.

Когда я обучал SICP, я получил впечатление различных аспектов. С одной стороны, загадка, что данные и код действительно то же самое, потому что код исполняемыми данные. В главе, посвященной металингвистических абстракций ошеломляют для многих, и имеет много забирать домой сообщений. Во-первых, что все правила являются произвольными. Это беспокоит некоторые студент, особенно те, кто физика в сердце. Я думаю, что красота не в самих правилах, но при изучении последствий правил. Изменение одной строки в коде может означать разницу между лексической области видимости и динамической области видимости.

Сегодня, хотя SICP по-прежнему весело и проницательные многим, я понимаю, что это становится устаревшим. С одной стороны, он не учит отладку навыков и инструментов (I включает в себя систему типа там), что очень важно для работы в современных гигантских системах.

Ответил 29/01/2009 в 03:42
источник пользователем

голоса
1

Я сейчас на раздел «Последовательности как обычные интерфейсы» и нашел концепцию процедур в качестве первого класса граждан весьма увлекательных. Кроме того, применение рекурсии то, что я никогда не видел, на любом языке.

Ответил 18/02/2009 в 19:09
источник пользователем

голоса
1

Я был очень удивлен, как легко реализовать языки. Это можно было бы написать интерпретатор Scheme на доске.

Ответил 01/02/2009 в 17:19
источник пользователем

голоса
1

Я чувствовал рекурсии в другом смысле после прочтения некоторых из глав SICP

Ответил 29/01/2009 в 17:23
источник пользователем

голоса
0

Затворы.

Исходя из первично императивном фона (Java, C # и т.д. - я только прочитал SICP год или около того назад в первый раз, и я Перечитывая сейчас), думая, что в функциональном плане было большим откровением для меня; он полностью изменил, как я думаю о моей сегодняшней работе.

Ответил 31/01/2009 в 01:22
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more