Re: [fonc] why are true,false,nil pseudovariables

2011-06-06 Thread Toon Verwaest
They are parsed just like variables. Rather than finding their declaration
in the method itself they are known to the compiler. Hence pseudovariables.

It also has the advantage that you don't have to pollute your literal frame
since there are special bytecodes that handle them.

Cheers,
Toon
On Jun 6, 2011 5:51 PM, Ondrej Bilka nel...@seznam.cz wrote:
 Hello
 As I started looking at squeak I am puzzled why true,false and nil are
pseudovariables. Why they cannot be just constants like 0,1.

 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Static typing and/vs. boot strap-able, small kernel, comprehensible, user modifiable systems

2011-06-04 Thread Toon Verwaest
I think you answered your own question. A small core is small since it is
limited to what is required to make it run. This eases development and lets
you focus on what's important and interesting.

On Jun 4, 2011 6:06 PM, Scott McLoughlin scottmc...@gmail.com wrote:

 Kind Folks,

 I just feel obligated to say that I had absolutely no intention
 of introducing the far too well-worn debate between untyped,
 latently typed and manifestly typed languages.

 My intention was to far more specifically ask: why small
 core, user comprehensible and modifiable, and boot-strapable
 systems seem to be the province of either latently typed (Smalltak,
 Lisp, Scheme, Icon (?), etc.) or untyped (Forth, B (?)) languages
 rather than...

 ...manifestly typed languages (wide variety - C++, D, Oberon,
 Haskell, Standard ML and oodles more).

 This is a very highly contextual question, I believe apropos of
 this mailing list.

 Mucho thanks again, in advance.

 - S.


 On 6/4/2011 11:27 AM, Michael Forster wrote:

 On Sat, Jun 4, 2011 at 10:08 AM, Alan Kayalan.n...@yahoo.com  wrote:
 [...]

 This left the other question and possible motivation for static type
 checking, which was: could the tradeoffs it imposed still wind up
helping
 the programmers more than bogging them down?

 The extreme case of this -- where the variables are actually constrained
to
 the specific values they are supposed to contain -- would be very useful
if
 it could be made to generally work -- it amounts to declarative
programming.

 A specific case only, but a useful one:  SQL.  (Even if it is an
 ad-hoc, informally-specified, bug-ridden, slow implementation of
 half of the relational model.)


 Another extreme case would concern procedures/methods (we've called it
 semantic typing). For example, we want to find an operator that will
do
 something specific -- like the sine function -- and we type our local
name
 for this so that the only value it can have is a procedure that will
compute
 sine. We could think of this as a kind of unit test for resources, or we
 could think of this as search criteria. Ted Kaehler implemented the
Squeak
 method finder to do some of this. You give it examples of relations and
it
 finds the methods. So 3 . 4 . 7 will yield both + and xor. 30 . 0.5
will
 find degreeSine, etc.

 [...]

 It's always seemed to me that what we really need to be working on is
 something more like real specifications that execute to produce
prototypes
 (and can be debugged) much more than weak schemes that are complex
enough to
 introduce severe cognitive load, but aren't comprehensive enough to come
 close to paying their way.


 A small step along the path?  Haskell's type system and the Hoogle
 Haskell API search engine:

 http://haskell.org/hoogle/


 Regards,

 Mike

 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc