Книги по истории программирования и языков (программирования)?
Есть такие?
Есть такие?
В каких областях программирования С++ незаменим? И почему?
Широко известна фраза Алана Перлиса «Лучше иметь сто функций, работающих с одной структурой данных, чем десять функций, работающих с десятью структурами данных».
Дык это. Почему?
Если почитать SICP, то замыкания - это такое свойство функции, что, например, «мы говорим, что операция объединения данных обладает замыканием в том случае, если результаты объединения этой операции могут объединяться этой же операцией». Поэтому я думал, что суть примера с языком описания изображений в том, что это круто, когда наши процедуры обладают этим свойством - из несложных операций с изображениями мы можем получать сложные, потому что операция над изображением - это изображение.
Но если прочитать вики, то «Замыкание (англ. closure) в программировании — функция, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции и не в качестве её параметров (а в окружающем коде).» Ну и что? Получается просто, что процедура использует глобальные переменные, ничего примечательного тут вроде и нет.
Так что такое замыкание? Помогите разобраться.
Есть ли книги подобные SICP, но на Си?
Есть люди которые читали обе книги? В чём разница? Если читал одно, имеет смысл читать другое?
Наткнлуся вот на это
http://armpit.sourceforge.net/
и стало интересно, нужно ли оно? Чем лучше/хуже по сравнению с Си?
Нужен дешёвый нетбук в районе 200-250 баксов для учебных целей, типа lfs собрать, на дистрибутивы посмотреть, ну может потом ещё какое применение найду.
Проблема выбора в том, что хочется, чтобы дрова ставились без геморроя, в железе не секу, для меня было открытием например, что у GMA3600 нет поддержки под Linux.
Пока смотрю на GOCLEVER NETBOOK I102, Lenovo IdeaPad S10-2, Samsung N100S.
И какие проблемы могут быть с дешёвыми нетбуками?
Пардон, понимаю, что слишком много плача уже, но я так понял, что broadcom со слакой не особо дружит. За то время, что я пытался разобраться с дровами на BCM4313, я пользовался официальной инструкцией с сайта broadcom, ставил дрова с помощью slackbuilds и sbopkg, заносил в блэклист всё что нужно и заливал firmware.
Вот вроде бы дрова поставлены. iwconfig wlan0 выдаёт
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=19 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
lspci -v выдаёт
04:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
Subsystem: Broadcom Corporation Device 0587
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at f3900000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [58] Vendor Specific Information: Len=78 <?>
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [d0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-b9-ff-ff-9d-08-ed
Capabilities: [16c] Power Budgeting <?>
Kernel driver in use: brcmsmac
Вроде бы всё хорошо, ядро использует драйвер brcmsmac (я смотрел на wireless.kernel.org, этот драйвер должен стоять для BCM4313). Но ни wicd ни NetworkManager не видит ни одной wi-fi точки. Почему?
Пользуюсь этой инструкцией: http://www.slackwiki.com/Broadcom_Wireless
Хочу поставить дрова на broadcom, ставлю sbopkg, в консоли набираю
sbopkg -i broadcom-sta
Есть такая проблема. Ставлю Slackware 14 с флэшки. Создаю папку install, монтирую флэшку. Затем выбираю Install from pre-mounted directory, вписываю /install, выбираю полную установку, жду, что система будет долго ставиться, но мне тут же выбрасывает сообщение «SETUP COMPLETE System configuration and installation is complete. You may EXIT setup and reboot your machine with ztrl-alt-delete.» А я ведь ожидал, что мне установщик предложит поставить lilo, как в этой инструкции. После перезагрузки появляется error: file not found. grub rescue>
Вот просматривал мельком литературу по квантовым вычислениям, встретил упоминание машины Тьюринга. Интересно, какие понятия и темы из computer science нужно знать, чтобы заниматься квантовыми вычислениями? SICP читать? =))
Вот недавно была тема про if в упражнении с тестом порядка вычисления интерпретатора. На этот вопрос я бы ответил, мол, if - особая форма, если из предиката следует одна из «логических ветвей» (пардон за мой французский), то будет вычисляться именно она, другие «ветви» вычисляться не будут. Я пришёл к такому выводу после упражнения 1.6, про то, что если мы определим свой собственный new-if как простую комбинацию, то у нас может получиться, что программа циклится из-за того, что наш new-if пытается вычислить все «ветви».
ОК, пускай.
Вот например у меня DrRacket. Пишу в нём код упражнения 1.5
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
(test 0 (p))
Программа зациклится из-за того, что интерпретатор использует аппликативный порядок вычисления, то есть делает все вычисления при подстановке сразу, натыкается на (p) и циклится... Но стоп! Это ведь противоречит тому, что if - особая форма, если попали в одну «ветвь», то другую вычислять не нужно.
Можете объяснить?
Буду разбираться с STM32F4-DISCOVERY, ищу литературу по архитектуре микроконтроллеров, что-нибудь общее, базовое, чтобы иметь понятие о структуре микроконтроллеров, регистрах, памяти и прочем. В общем, нужно понять, как работает микроконтроллер. Литературу советуйте и для новичков, и более продвинутую, если можно. В сети пока что нашёл только книги Гурова: http://rutracker.org/forum/viewtopic.php?t=2732279
← предыдущие |