[racket] Fundamentals

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Oct 13 19:52:17 EDT 2010

On Oct 13, 2010, at 7:29 PM, Mathew Kurian wrote:

> Hello everybody,
> 
> Recently, I have been trying to understand a bit more about the Racket language itself and today I hit a few questions along the way. So, here they are:
> 
> -- Is Racket an interpreted language?
> 
No. 
> If not, how does it convert to machine/binary code?
> 
1. It converts the source program into a suitable intermediate form (a 'tree') and checks some basic properties. 
2. It converts this intermediate form to machine instructions just before it is about to 'interpret' a piece of the tree -- only when it runs on a platform for which there are libraries for doing so. Otherwise, it may interpret the tree. 

> -- In general computing, how does the random function work? How can computer language ever create random numbers, that would be impossiible?
> 
These are pseudo-random numbers. They look like someone created a string of random numbers and yet, this isn't really true. We know exactly how to produce the same string again and again. BUT, by 'hiding' one of the inputs to the random number function, its interface appears to spit out new strings of numbers every time you call it. This is an essential trick: 

 -- make the interface (signature, contract) to a function look smaller than it really is, and magic happens 

The rest has been the subject to book-length mathematical-philosophical treaties. 

> -- How does Racket initiate a string memory allocation? From a bunch of controlled electrical signals to an virtual action, how does Racket achieve this? (I am looking for a generalization of the idea, not too technical. With some direction to start, I can go ahead and google for articles to find for an in-depth analysis.)
> 
Why would you want to stop at the electrical signals? Why don't you try to understand the movement of electrons behind memory allocation for strings? And then there is the sub-electron level. How about the quarks? 

-- Matthias







-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20101013/ad1ef8ad/attachment.html>

Posted on the users mailing list.