September 19, 2002
Leonardo da Vinci's robot: The first analog computer ever
In 1515, Leonardo da Vinci presented the king of France with a mechanical lion robot. Driving under its own control, it wandered through the crowds at the court, approached the king -- then opened its chest to reveal a bouquet of lilies.
According to robot design guru Mark Elling Rosheim, this lion was based on an almost totally-ignored invention of da Vinci's: A three-wheeled robot cart. The cart controlled itself via a cam-shaft-driven guidance device -- making it arguably the first analog computer in history. Rosheim has done incredible research documenting the history of this robot cart, and even built a virtual version of it (check out a video showing it here.)
And dig this: Rosheim theorizes that da Vinci's robot cart was inspired by The Iliad. In Book 18, Homer describes a flock of three-wheeled, autonomous robot tripods, created by Hephaistos to guard his castle walls:
…since he was working on twenty tripods which were to stand against the wall of his strong-founded dwelling. And he had set golden wheels underneath the base of each one so that of their own motion they could wheel into the immortal gathering, and return to his house: a wonder to look at.
Rosheim spoke at MIT today and totally fried my noodle.
Posted by Clive Thompson at September 19, 2002 12:02 AM
| TrackBack
i'm a medical student in South East Asia. i need information about da vinci and zeus. i think it's very interesting. does anybody want to tell me where i can get more information about them ?
please help me to solve my couriusity
thank you.
i'm sorry.i missed a question in my first message above. does anyone know what the newest robot in medical technology, esp surgery? please tell me, thank you
and what about di caprio lol
Hi,only a little Tip against Guestbook Spam without any own advantage : junkeater.com
Regards Uwe
This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.
When the machine compiles your code, however, it does a little bit of translation. At run time, the computer sees nothing but 1s and 0s, which is all the computer ever sees: a continuous string of binary numbers that it can interpret in various ways.
This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.
This variable is then used in various lines of code, holding values given it by variable assignments along the way. In the course of its life, a variable can hold any number of variables and be used in any number of different ways. This flexibility is built on the precept we just learned: a variable is really just a block of bits, and those bits can hold whatever data the program needs to remember. They can hold enough data to remember an integer from as low as -2,147,483,647 up to 2,147,483,647 (one less than plus or minus 2^31). They can remember one character of writing. They can keep a decimal number with a huge amount of precision and a giant range. They can hold a time accurate to the second in a range of centuries. A few bits is not to be scoffed at.
When Batman went home at the end of a night spent fighting crime, he put on a suit and tie and became Bruce Wayne. When Clark Kent saw a news story getting too hot, a phone booth hid his change into Superman. When you're programming, all the variables you juggle around are doing similar tricks as they present one face to you and a totally different one to the machine.
Inside each stack frame is a slew of useful information. It tells the computer what code is currently executing, where to go next, where to go in the case a return statement is found, and a whole lot of other things that are incredible useful to the computer, but not very useful to you most of the time. One of the things that is useful to you is the part of the frame that keeps track of all the variables you're using. So the first place for a variable to live is on the Stack. This is a very nice place to live, in that all the creation and destruction of space is handled for you as Stack Frames are created and destroyed. You seldom have to worry about making space for the variables on the stack. The only problem is that the variables here only live as long as the stack frame does, which is to say the length of the function those variables are declared in. This is often a fine situation, but when you need to store information for longer than a single function, you are instantly out of luck.
When Batman went home at the end of a night spent fighting crime, he put on a suit and tie and became Bruce Wayne. When Clark Kent saw a news story getting too hot, a phone booth hid his change into Superman. When you're programming, all the variables you juggle around are doing similar tricks as they present one face to you and a totally different one to the machine.
Inside each stack frame is a slew of useful information. It tells the computer what code is currently executing, where to go next, where to go in the case a return statement is found, and a whole lot of other things that are incredible useful to the computer, but not very useful to you most of the time. One of the things that is useful to you is the part of the frame that keeps track of all the variables you're using. So the first place for a variable to live is on the Stack. This is a very nice place to live, in that all the creation and destruction of space is handled for you as Stack Frames are created and destroyed. You seldom have to worry about making space for the variables on the stack. The only problem is that the variables here only live as long as the stack frame does, which is to say the length of the function those variables are declared in. This is often a fine situation, but when you need to store information for longer than a single function, you are instantly out of luck.
This code should compile and run just fine, and you should see no changes in how the program works. So why did we do all of that?
But variables get one benefit people do not
Hello folks nice blog youre running