- Dec 2023
-
cuis-smalltalk.github.io cuis-smalltalk.github.io
-
But just what is an object? At its simplest, an object has two components: Internal state. This is embodied by variables known only to the object. A variable only visible within the object is called a private variable. As a consequence, it is impossible – if the object decides so – to know the internal state of the object from another object. A repertoire of behaviors. These are the messages an object instance responds to. When the object receives a message it understands, it gets its behavior from a method with that name known by its class or superclass.
Reductionistic vs other definitions
Is the annotated paragraph describing what is an object or how is an object? This same criticism is also present in Dave West's Object Thinking.
Other perspectives:
Smalltalk's design—and existence—is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that hides its combination of state and process inside itself and can be dealt with only through the exchange of messages. Philosophically, Smalltalk's objects have much in common with the monads of Leibniz and the notions of 20th century physics and biology. Its way of making objects is quite Platonic in that some of them act as idealizations of concepts—Ideas—from which manifestations can be created. That the Ideas are themselves manifestations (of the Idea-Idea) and that the Idea-Idea is a-kind-of Manifestation-Idea—which is a-kind-of itself, so that the system is completely self-describing— would have been appreciated by Plato as an extremely practical joke.
—Alan Kay Early History of Smalltalk (1972)
So objects have something resembling agency, see the actor model.
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.
—Alan Kay Clarification of "object-oriented", email reply to Stefan Ram
I also like the complementary view that Gerald Sussman teaches on his video lecture 5A that informs chapter 2 and 3 of SICP; objects are a cheap way of modelling the world.
-
- Dec 2022
-
www.zhihu.com www.zhihu.com
-
学习编译原理有什么好的书籍?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
(sicp 计算机程序的构造和解释) 如何理解无限长的流?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
如何看待编程语言越来越大的趋势?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
计算机系大四学生如何在六个月的时间内完成一个编译器?要学些什么?
-
-
www.zhihu.com www.zhihu.com
-
学习 scheme 有哪些资源推荐?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
有什么项目适合用racket实现?最近看完SICP要练练手.
-
-
www.zhihu.com www.zhihu.com
-
Racket这种可以把语言特性写成库的语言为何没有得到广泛的工业应用?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
什么是卫生宏, 跟普通的宏以及函数有什么区别?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
函数式语言能否内置一个 caching 类似的功能用于函数 Memoization, 为什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
Racket里的Macro都可以用来做些什么?
-
-
www.zhihu.com www.zhihu.com
-
Essentials of Programming Languages 第五章 trampolined interpreter不知道如何实现?
-
-
-
手撸解释器教程《Crafting Interpreters》中文翻译
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
EOPL是一本怎样的书?和SICP如何比较?
-
-
www.zhihu.com www.zhihu.com
-
如何看待Berkeley开设的CS61A:SICP in Python课程?
-
-
www.zhihu.com www.zhihu.com
-
如何通俗的理解将语法分析和执行分离的好处?
-
-
www.zhihu.com www.zhihu.com
-
如何评价SICP?
-
-
www.zhihu.com www.zhihu.com
-
如何评价 Why MIT stopped teaching SICP?
-
-
www.zhihu.com www.zhihu.com
-
SICP 和 CSAPP 中的哪些题目让你感到受益匪浅?
-
-
www.zhihu.com www.zhihu.com
-
SICP 是不是被高估了?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
SICP中环境模型可以等价为龙书中(第七章)讲的的运行时刻环境么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
CPS变换可以用来将普通递归转变为尾递归??
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
你在南京大学上过最牛的课是什么?
-
-
www.zhihu.com www.zhihu.com
-
SICP换零钱迭代方法实现,是如何写的?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
《计算机程序的构造和解释(SICP)》讨论的核心问题是什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
读完sicp后应该做些什么?
Tags
Annotators
URL
-
-
www.zhihu.com www.zhihu.com
-
sicp中的流模式在实际开发中有什么应用?
Tags
Annotators
URL
-
- Aug 2022
-
time.geekbang.org time.geekbang.org
-
可以基于意图去使用各种协调分布式系统的工具,而不用深入具体工具的实现细节去研究怎么解决的分布式难题
sicp作者也提过,现代开发是探针式的开发方式,不需要了解那么多细节,只需要知道点api即可
Tags
Annotators
URL
-
- Apr 2020
-
sarabander.github.io sarabander.github.io
-
Applicative order versus normal order According to the description of evaluation given in 1.1.3, the interpreter first evaluates the operator and operands and then applies the resulting procedure to the resulting arguments. This is not the only way to perform evaluation. An alternative evaluation model would not evaluate the operands until their values were needed. Instead it would first substitute operand expressions for parameters until it obtained an expression involving only primitive operators, and would then perform the evaluation.
Applicative-order and normal-order evaluation sound like synonyms to eager/strict versus _lazy_evaluation strategies respectively, but there are differences:
- Eager evaluation/applicative order and lazy evaluation/normal order (Stackoverflow)
- Normal, Applicative, and Lazy evaluation
The bottom line seems to be that
- strict/eager = normal order
- lazy ~= applicative BUT all terms are evaluated at most once
Tags
Annotators
URL
-
-
sarabander.github.io sarabander.github.io
-
recursion equations
Does this refer to recurrence relations?
Not much found for recursion equations, and those seem to suggest the two terms are interchangeable. However: Recurrence vs Recursive
See wikipedia on recurrence relation also.
Tags
Annotators
URL
-
-
sarabander.github.io sarabander.github.io
-
Thus, programs must be written for people to read, and only incidentally for machines to execute.
Tags
Annotators
URL
-
-
sarabander.github.io sarabander.github.io
-
Each breakthrough in hardware technology leads to more massive programming enterprises, new organizational principles, and an enrichment of abstract models. Every reader should ask himself periodically “Toward what end, toward what end?”—but do not ask it too often lest you pass up the fun of programming for the constipation of bittersweet philosophy.
-
The source of the exhilaration associated with computer programming is the continual unfolding within the mind and on the computer of mechanisms expressed as programs and the explosion of perception they generate. If art interprets our dreams, the computer executes them in the guise of programs!
Tags
Annotators
URL
-