'LISP STUDY'에 해당되는 글 1건

  1. 2009.10.24 Pioneer Profiles - Christopher Strachey
2009.10.24 08:54

Pioneer Profiles - Christopher Strachey

세상에는 재미있는 사람이 많다.
denotational semantics를 만들었던 스트래치 같은 사람이 그 예다. 
튜링상을 받은 사람들과 오랫동안 작업을 해오면서도 의외로 알려지지 않았다. 

스트래치는 집안 대대로 머리가 좋았는데 블룸스베리 그룹의 일원이 리튼 스트래치도 있고 다른 유명한 스트래치가 있다.  블룸스베리 그룹은 이상하게도 재미있는 사람들이 많았고 이들의 문재는 탁월했다.   가장 많이 알려진 사람은 메이나드 케인즈일 것이다. 버지니아 울프도 바네사 벨도 이 그룹의 일원이었다. 아더 웨일리( 많이 알려지지는 않았지만 노자의 도덕경을 영어로 번역한 "The Way and it's Power"를  썼다. 하이쿠와 동양의 많은 작품이 웨일리를 통해 번역되었다.  이들은 너무 자유분방해서 박사학위를 따지 않은 사람도 많다. 동성애와 양성애적 성향을 항상 이들을 따라 다녔다. 케인즈 역시 마찬가지였다.  찰스 스트래치도 그런 사람으로 볼 수 있다.   

얼마전 작고한 피터란딘은 스트래치의 유일한 조수였다. 란딘은 컨티뉴에이션으로 많이 알려져 있지만  스트래치와 란딘이 알골과 다른 컴퓨터언어에 미친 영향은 상당히 컸다.  스트래치는 1975년 작고 했다.  그 다음 스트래치 그룹의 영향력은 많이 시들해졌다. 스트래치의 영향력이 너무 컸다면 우리는 수학에 가까운 프로그래밍으로 많이 기울었을 것이다. 

C 언어의 직접적인 조상인 CPL ,BCPL ,B와 관련이 있고 마크로를 만든 사람으로도 알려져 있다.  l-valu와 r-value의 이론적인 확립을 하기도 했다.  Cuurrying (Haskel Curry의 이름에서 따옴)을 명명하기도 했다.

무엇보다도 Fixed Point 의 이론을 보면 언제나 스트래치를 만나게 되어있다. sicp 에 지겹도록 나오는 함수형언어의 개념은 처음부터 lisp에서 강조된 것은 아니다. 재 발견한 것이다.  Christopher Strachey는 ”Functions as First-class Citizen' 이라는 모토아래 Lamda 계산 개념이 프로그래 언어의 설계에 기본이라고 하였다. Scheme은 특히 이런 영향을 직접적으로 받았다. 람다페이퍼라고 부르는 문서들에 명확히 나온다.

너무 방탕하게 놀다가 대학을 간신히 졸업했으나 나중에는 캠브리지의 컴퓨터 연구소를 지도한다. 후반부에 공동으로 연구하던 Dana Scott는 튜링상을 받았다.   현재의 수학실력으로는 즐기기엔 무리였다. MIT의 해커들도 버거워했던 주제다. 증명이 되는 것으로 만족해야 할지 모른다. 

위키백과에도 소개글이 있다. (http://en.wikipedia.org/wiki/Christopher_Strachey )

얼마전 서핑을 하다가 스트래치를 재평가하는 작업들을 보았다. 
아래의 글은 그 중의 하나다. 


Pioneer Profiles - Christopher Strachey

David Barron
Christopher Strachey

Author’s Note.

This is not a fully-referenced scholarly paper. Rather, it is an affectionate tribute to a former colleague and friend and is based mostly on memories of conversations, whether at High Table in Cambridge, in the Laboratory, or in the rural seclusion of the Strachey family home in Sussex.

Anyone who recognises the name ‘Strachey’ will no doubt associate it with the literary family who were at the heart of the Bloomsbury Group (think ‘Eminent Victorians’ by Lytton Strachey - Christopher’s uncle). And those few computer scientists who recognise ‘Christopher Strachey’ will probably associate the name with his work on formal semantics of programming language at Oxford, in collaboration with Dana Scott. But Christopher was far more than a theorist: he was always the programmer’s programmer, and also played a leading part in the founding of the British computer industry, as a logical designer.

Although the Stracheys were mainly a literary clan, there was a mathematical streak in the family - Christopher’s father Oliver was engaged in decryption in both world wars. Christopher followed this streak, and went up to King’s College Cambridge in 1935 to read Mathematics. After various vicissitudes, he graduated in Natural Sciences and took up a job as a research physicist with STC (Standard Telephone and Cables Ltd.). At the end of the war, he left STC and took up teaching, eventually becoming a mathematics master at Harrow School in 1949.

During his time with STC he had been involved in numerical solution of differential equations using a Differential Analyser (an analogue computer). Whilst at Harrow, he was introduced to Mike Woodger who told him about Turing’s ‘Pilot Ace’ computer at NPL. Christopher wrote a program to play draughts on the machine, but the Pilot Ace wasn’t really up to the job. Hearing about the Manchester Mark 1, he wrote to Turing, his contemporary at King’s, asked for details of the instruction sets and completed a program that not only played draughts, but also played “God Save the King” on completion.

In 1949, Lord Halsbury had persuaded the Government to set up the National Research Development Corporation (NRDC) under his leadership, the intention being to commercialise British scientific ability. Halsbury was particularly seized by the potential of the then new computers, and persuaded Strachey to join NRDC. As well as doing the programming for a simulation of the proposed St Lawrence Seaway, he took a major role in the development of the Elliot 401 and Ferranti Pegasus computers, being responsible for the logical design of the Pegasus, a workhorse to replace the Ferranti Mark 1 (based on the Manchester Mark 1). In 1959, he left NRDC and set up shop as the country’s first freelance computer consultant. In this capacity he had substantial input into the design of EMI’s EMIDEC 1100 and 2400 computers.

In 1962, Strachey, whilst continuing as a consultant, was persuaded by Maurice Wilkes to join the team at Cambridge developing a cut-down version of the Manchester Atlas supercomputer (called Titan in Cambridge, but marketed by Ferranti/ICL as Atlas 2). Strachey’s brief was to develop a new programming language for the machine, working with myself and David Hartley. The language was based on Algol 60, and was initially called CPL (Cambridge Programming Language). Later, we joined forces with a team at the University of London Institute of Computer Science, and it became ‘Combined Programming Language’. For myself, I am content for it to be remembered as Christopher’s Private Language.

CPL had many innovative features: some of these were just, in Christopher’s phrase, “syntactic sugar”, but a major contribution was the clarification of the concept of L-values and R-values, which can be seen in C and all subsequent languages. (CPL begat BCPL, which begat B and then C and C++: another example of the pervasive influence of Christopher at the time). The development of CPL also provides another instance of Christopher as a programmer’s programmer. He decided that we needed a macro generator to assist in developing the CPL compiler, and - over a weekend in his Sussex home - produced the General Purpose Macrogenerator, GPM. This was an incredibly elegant string-substitution language - which could also, as he demonstrated in a tour-de-force of programming, be used to compute factorials.

As the CPL project proceeded, he became more and more interested in the formal semantics of programming languages. Delivery of the compiler fell more and more behind schedule. As a result, in 1965 he accepted an offer of a post at Oxford, as Head of the Programming Research Group (PRG), an offshoot of the Computing Laboratory. Here, in collaboration with Dana Scott, he developed his theory of denotational semantics and was eventually recognised by the award of a Personal Chair. But even whilst he was engaged in this theoretical work, the demon programmer survived. The PRG was given funds to buy a Modular One computer. Christopher decided from the start that the group would do their programming using an interpreter to simulate a stack machine. This was to be embedded in an operating system (OS/6) based on high level concepts. In the months between the placing of the order for the Modular One and its delivery, Christopher and his assistant Joe Stoy wrote the system in a CPL-like language, and developed a cross-compiler on the University’s KDF9 mainframe to compile the code into Modular One assembler. The machine eventually arrived, and the engineers installed it. The cross-compiled code was loaded, and pretty well worked out of the box. A night of tweaking followed, and in the morning the PRG personnel appeared to find a working system. Strachey locked away the Modular One manuals: “I’m the only one who knows the instruction code” he joked. His premature death in 1975 deprived the country of one of its greatest and most prolific computer scientists. (He always denied the existence of Computer Science, but he will be remembered as one of the subject’s founding fathers.)

There’s so much more that I could say about this remarkable man: perhaps the Editor will allow me another thousand words in a forthcoming issue. Let me finish with a quotation that says it all:

“It has long been my personal view that the separation of practical and theoretical work is artificial and injurious. Much of the practical work done in computing, both in software and in hardware design, is unsound and clumsy because the people who do it have not any clear understanding of the fundamental design principles of their work. Most of the abstract mathematical and theoretical work is sterile because it has no point of contact with real computing.”


저작자 표시
신고
Trackback 0 Comment 0


티스토리 툴바