---
created_at: '2017-05-16T17:31:25.000Z'
title: SHRDLU (1971)
url: http://hci.stanford.edu/winograd/shrdlu/
author: panic
points: 113
story_text: 
comment_text: 
num_comments: 30
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1494955885
_tags:
- story
- author_panic
- story_14351485
objectID: '14351485'

---
[Source](http://hci.stanford.edu/winograd/shrdlu/ "Permalink to SHRDLU")

# SHRDLU

> ## SHRDLU
> 
> SHRDLU is a program for understanding natural language, written by Terry Winograd at the M.I.T. Artificial Intelligence Laboratory in 1968-70. SHRDLU carried on a simple dialog (via teletype) with a user, about a small world of objects (the BLOCKS world) shown on an early display screen (DEC-340 attached to a PDP-6 computer). 
> 
> SHRDLU is described in Winograd's dissertation, which was issued as [MIT AI Technical Report 235, February 1971][1] with the title _Procedures as a Representation for Data in a Computer Program for Understanding Natural Language_ It was published as a full issue of the journal _Cognitive Psychology_ Vol. 3 No 1, 1972, and as a book, _Understanding Natural Language_ (Academic Press, 1972).
> 
> SHRDLU was written in MacLisp for the ITS system, vintage 1970\. The source code is available at <http://hci.stanford.edu/winograd/shrdlu/code> and as a TAR file at  <http://hci.stanford.edu/winograd/shrdlu/code.tar> .A discussion of various efforts is on the SHRDLU is at <http://www.semaphorecorp.com/misc/shrdlu.html>
> 
> You can download a [Windows text-only console version][2] of SHRDLU implemented in Common Lisp, or a [graphical 3-D][3] version implemented with an extra Java layer. Source code is included. These files were supplied by Greg Sharp, and were produced by the UMR student project to resurrect SHRDLU. Double-click the SHRDLU.BAT file in either version to start running. No guarantees. 
> 
> If you have other questions, contact [Terry Winograd][4] <[winograd@cs.stanford.edu][5]>. You can also see the story of [how SHRDLU got its name.][6]
> 
> See more about shrdlu at [Wikipedia][7]
> 
>   
[ ][8]
> 
> 
| ----- |
|   ![][9] |   ![][10] |  
|   Original screen display |   Later color rendering (Univ. of Utah) | 
> 
>       
> 
> **The dialog that was used as a SHRDLU demo:**
> 
> : `Person: PICK UP A BIG RED BLOCK.` : `Computer: OK. (does it)` : `Person: GRASP THE PYRAMID.` : `Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.` : `Person: FIND A BLOCK WHICH IS TALLER THAN THE ONE YOU ARE HOLDING AND PUT IT INTO THE BOX.` : `Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING.` : `Computer: OK. (does it)` : `Person: WHAT DOES THE BOX CONTAIN?` : `Computer: THE BLUE PYRAMID AND THE BLUE BLOCK.` : `Person: WHAT IS THE PYRAMID SUPPORTED BY?` : `Computer: THE BOX.` : `Person: HOW MANY BLOCKS ARE NOT IN THE BOX?` : `Computer: FOUR OF THEM.` : `Person: IS AT LEAST ONE OF THEM NARROWER THAN THE ONE WHICH I TOLD YOU TO PICK UP?` : `Computer: YES, THE RED CUBE.` : `Person: IS IT SUPPORTED?` : `Computer: YES, BY THE TABLE.` : `Person: CAN THE TABLE PICK UP BLOCKS?` : `Computer: NO.` : `Person: CAN A PYRAMID BE SUPPORTED BY A BLOCK?` : `Computer: YES.` : `Person: CAN A PYRAMID SUPPORT A PYRAMID?` : `Computer: I DON'T KNOW.` : `Person: STACK UP TWO PYRAMIDS.` : `Computer: I CAN'T.` : `Person: WILL YOU PLEASE STACK UP BOTH OF THE RED BLOCKS AND EITHER A GREEN CUBE OR A PYRAMID?` : `Computer: OK. (does it)` : `Person: WHICH CUBE IS SITTING ON THE TABLE?` : `Computer: THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID.` : `Person: IS THERE A LARGE BLOCK BEHIND A PYRAMID?` : `Computer: YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN CUBE, AND THE BLUE ONE.` : `Person: PUT A SMALL ONE ONTO THE GREEN CUBE WHICH SUPPORTS A PYRAMID.` : `Computer: OK. (does it)` : `Person: PUT THE LITTLEST PYRAMID ON TOP OF IT.` : `Computer: OK. (does it)` : `Person: DOES THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS SUPPORT ANYTHING GREEN?` : `Computer: YES, THE GREEN PYRAMID.` : `Person: WHAT COLOR IS IT?` : `Computer: BY "IT", I ASSUME YOU MEAN THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS.` : `Computer: RED` : `Person: HOW MANY THINGS ARE ON TOP OF GREEN CUBES?` : `Computer: I'M NOT SURE WHAT YOU MEAN BY "ON TOP OF "IN THE PHRASE "ON TOP OF GREEN CUBES " .` : ` DO YOU MEAN:`
> 
> : `1 - DIRECTLY ON THE SURFACE` : `2 - ANWHERE ON TOP OF ?` : `Person: 2` : `Computer: THREE OF THEM.` : `Person: HAD YOU TOUCHED ANY PYRAMID BEFORE YOU PUT THE GREEN ONE ON THE LITTLE CUBE?` : `Computer: YES, THE GREEN ONE.` : `Person: WHEN DID YOU PICK IT UP?` : `Computer: WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE.` : `Person: WHY?` : `Computer: TO GET RID OF IT.` : `Person: WHY DID YOU DO THAT?` : `Computer: TO CLEAN OFF THE RED CUBE.` : `Person: WHY DID YOU CLEAR OFF THAT CUBE?` : `Computer: TO PUT IT ON A LARGE GREEN CUBE.` : `Person: WHY DID YOU DO THAT?` : `Computer: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE.` : `Person: WHY DID YOU DO THAT?` : `Computer: BECAUSE YOU ASKED ME TO.` : `Person: HOW DID YOU DO IT?` : `Computer: BY PUTTING A LARGE RED BLOCK ON THE TABLE ; THEN LETTING GO OF IT ; THEN PUTTING A LARGE GREEN CUBE ON IT ; THEN LETTING GO OF THAT CUBE ; THEN PUTTING THE RED CUBE ON THAT CUBE; THEN LETTING GO OF THAT CUBE.` : `Person: HOW MANY OBJECTS DID YOU TOUCH WHILE YOU WERE DOING IT?` : `Computer: FOUR OF THEM.` : `Person: WHAT DID THE RED CUBE SUPPORT BEFORE YOU STARTED TO CLEAN IT OFF?` : `Computer: THE GREEN PYRAMID.` : `Person: THERE WERE FIVE BLOCKS TO THE LEFT OF THE BOX THEN.` : `Computer: NO, ONLY FOUR OF THEM: THE RED CUBE, TWO LARGE GREEN CUBES AND A LARGE RED BLOCK.` : `Person: PUT THE BLUE PYRAMID ON THE BLOCK IN THE BOX.` : `Computer: OK. (does it)` : `Person: IS THERE ANYTHING WHICH IS BIGGER THAN EVERY PYRAMID BUT IS NOT AS WIDE AS THE THING THAT SUPPORTS IT?` : `Computer: YES, THE BLUE BLOCK.` : `Person: DOES A STEEPLE` : `Computer interrupting: SORRY, I DON'T KNOW THE WORD "STEEPLE".` : `Person: A "STEEPLE" IS A STACK WHICH CONTAINS TWO GREEN CUBES AND A PYRAMID.` : `Computer: I UNDERSTAND.` : `Person: ARE THERE ANY STEEPLES NOW?` : `Computer: NO.` : `Person: BUILD ONE.` : `Computer: OK. (does it)` : `Person: CALL THE BIGGEST BLOCK "SUPERBLOCK".` : `Computer: OK.` : `Person: HAVE YOU PICKED SUPERBLOCK UP SINCE WE BEGAN?` : `Computer: YES.` : `Person: WHY DID YOU DROP IT?` : `Computer: BY "IT", I ASSUME YOU MEAN THE SUPERBLOCK.` : ` I CAN'T EXPLAIN A NON-EXISTENT EVENT.` : `Person: IS THERE ANYTHING TO THE RIGHT OF THE RED PYRAMID?` : `Computer: YES, FOUR THINGS: THE BOX , THE RED CUBE, THE BLUE PYRAMID AND THE BLOCK NAMED SUPERBLOCK` : `Person: THANK YOU.` : `Computer: YOU'RE WELCOME!`

[1]: http://hci.stanford.edu/AITR-235.pdf
[2]: http://hci.stanford.edu/download/consoleshrdlu.zip
[3]: http://hci.stanford.edu/download/javashrdlu.zip
[4]: http://hci.stanford.edu/winograd
[5]: mailto:winograd%40cs.stanford.edu
[6]: http://hci.stanford.edu/name.html
[7]: http://en.wikipedia.org/wiki/SHRDLU
[8]: http://shrdlu.wikiverse.org/
[9]: http://hci.stanford.edu/shrdlu-original.gif
[10]: http://hci.stanford.edu/shrdlu-color.gif

