TECO(텍스트 에디터)

TECO (text editor)
테크노
원저작자댄 머피
초기 릴리즈1962/63
운영 체제OS/8, ITS, TOPS-10, TOPS-20, RT-11, RSTS/E, RSX-11, OpenVMS, 멀티틱스
유형텍스트 편집기

Text Editor & Corrector[2][3][4]줄임말인 TECO(/tikoko//)[1]Digital Equipment Corporation 컴퓨터에서 사용하기 위해 1962년에 개발된 문자 지향 텍스트 에디터이자 프로그래밍 [5][6]언어입니다.이후 PC Unix에서 사용할 수 있게 되었습니다. 머피는 매사추세츠공대(MIT)[5] 학생 시절 TECO를 개발했다.

Murphy에 따르면 "Punched paper tape가 PDP-1의 프로그램 소스를 저장하는 유일한 매체였기 때문에 Tape Editor와 Corrector라는 약자가 처음 사용되었습니다.하드디스크, 플로피디스크, 자기테이프(매그테이프), 네트워크는 없었습니다.[5]TECO가 일반적인 용도로 사용 가능하게 되었을 때, PDP-1 버전도 다른 [5]미디어를 지원했기 때문에 이름은 "텍스트 에디터와 수정자"[4]가 되었습니다.그 후 많은 사람들에[7] 의해 수정되었으며 원래 TECO [8][9][10]매크로에서 구현되었던 Emacs의 직접 조상입니다.

묘사

TECO는 편집자일 뿐만 아니라 텍스트 조작을 위한 해석프로그래밍 언어이기도 합니다.텍스트를 검색 및 수정하기 위한 임의 프로그램("매크로스"라고 함)은 큰 힘을 줍니다.그러나 정규 표현과 달리 문자열 검색에서 "또는" 연산자를 사용하는 버전이 있지만 언어는 필수입니다.

TECO에는 구문이 없습니다.프로그램의 각 문자는 대응하는 루틴에 디스패치되는 명령어입니다.이 루틴은 프로그램 스트림에서 추가 문자를 읽거나(문자열 인수의 효과를 제공), "프로그램 카운터"의 위치를 변경하거나(제어 구조의 효과를 제공), 값을 값 스택에 푸시할 수 있습니다(네스트된 괄호의 효과를 제공).그러나 구문 분석이나 구문 분석이 없기 때문에 코멘트 중간에 끼어드는 조작을 막을 수 있는 것은 없습니다.

TECO는 대소문자와 공백(삽입 [11]명령어인 탭 제외)을 무시합니다.

컴퓨터 프로그래밍에 관한 풍자 에세이인 "Real Programmers Don't Use Pascal"은 TECO 팬들을 위한 일반적인 게임은 명령어 시퀀스로 그들의 이름을 입력하고 무슨 일이 일어날지 알아내는 것이라고 제안했다.같은 에세이에서 TECO는 YAPHIYGI라는 약자를 만들었는데, 이는 WYSIWYG와 대조적으로 "You Daquested For It You Got It"이라는 뜻이다.

영향

EMACS 에디터는 원래 David A에 의해 시작되었습니다. Moon과 Guy L. Steel Jr.는 TECO에서 에디터 MACros 세트로 구현되었습니다.TECO는 1964년 MIT Project MAC에서 개발된 Digital Equipment Corporation(DEC) PDP-6 구현 이후 더욱 널리 사용되게 되었습니다.이 구현에서는 편집된 텍스트를 CRT 화면에 시각적으로 계속 표시하여 대화형 온라인 편집기로 사용하였습니다.이후 버전의 TECO는 VT52VT100 등의 다양한 DEC RS232 비디오 단말기에서 풀스크린 모드를 구동할 수 있었습니다.

TECO는, PDP-1 컴퓨터, PDP-8(OS/[12][13]8 의 경우), PDP-6 와 PDP-10호환성이 없는 타임 쉐어링 시스템(ITS), PDP-10TOPS-10TOPS-20 를 포함한, 몇개의 operating system과 컴퓨터로 사용할 수 있었습니다.TECO 버전은 모든 DEC 운영체제에서 제공되었습니다.RT11에서 사용할 수 있는 버전은 GT40 그래픽 디스플레이를 구동할 수 있었고 RSTS/E에서 사용할 수 있는 버전은 멀티 사용자 런타임 시스템으로 구현되어 사용자의 완전한 운영환경으로 사용할 수 있었습니다.사용자는 실제로 TECO를 종료할 필요가 없었습니다.VTEDIT(Video Terminal Editor) TECO 매크로는 직접 커서를 제어할 수 있는 터미널(VT52 및 VT100 등)이 있는 RSTS/E 및 VAX 시스템에서 일반적으로 사용되어 현재 개발된 Emacs와 유사한 기능을 제공하는 전체 화면 비주얼 에디터를 제공합니다.

TECO는 VSI에 의해 OpenVMS에 계속 포함되며, 다음과 같이 호출됩니다.EDIT/TECO명령어를 [14]입력합니다.

PDP-10용으로 배포된 버전 DEC의 후속 버전은 MS-DOS/Microsoft Windows 환경에 대한 몇 가지 부분 구현과 함께 여전히 인터넷에서 사용할 수 있습니다.

역사

TECO는 1963년경에 Daniel L.에 의해 MIT에서[15] 처음 개발되었습니다. Murphy는 서로 다른 부서에 속한 [16]두 대의 PDP-1 컴퓨터에 사용할 수 있으며 둘 다 MIT 빌딩 26에 있습니다.이러한 머신에서는, 통상의 개발 프로세스에서는, Friden Flexowriter사용하고, 연속적으로 천공된 종이 테이프에 소스코드를 오프라인으로 준비했습니다.IBM의 대형 메인프레임의 프로그래머들은 기계에서 읽을 수 있는 각 문자를 입력하는 동시에 모든 카드의 상단을 따라 사람이 읽을 수 있는 도트 매트릭스 문자를 인쇄하는 키 펀치를 사용하여 카드에 소스 코드를 입력했습니다.따라서 IBM 프로그래머는 덱의 카드를 물리적으로 조작함으로써 코드 행을 읽고, 삽입하고, 삭제하고, 이동할 수 있었습니다.펀치 페이퍼 테이프는 이러한 편의성을 제공하지 않아 온라인 편집의 발전을 이끌었다.

PDP-1의 초기 편집자는 "비싼 타이프라이터"로 명명되었습니다.Stephen D 지음.Piner, 그것은 가장 기본적인 선 중심의 에디터였고 검색과 치환 기능조차 없었습니다.그 이름은 "Colossal Typwriter"라고 불리는 초기의 다소 비대했던 편집자를 비꼬는 의미에서 선택되었다.그 시절에도 온라인 편집을 통해 디버깅 사이클의 시간을 절약할 수 있었습니다.PDP-1 해커들이 작성한 또 다른 프로그램은 비슷한 맥락에서 고가 데스크 계산기였다.

TECO의 당초 목적은 PDP-1을 보다 효율적으로 사용하는 것이었습니다.매뉴얼에서 구상한 대로 콘솔에 앉아 '비용 부담'으로 편집하는 것이 아니라 단순히 결함이 있는 텍스트를 검사하고 텍스트에 대해 수행할 편집 작업을 설명하는 '수정 테이프'를 준비하면 됩니다.소스 테이프와 수정 테이프를 고속(초당 200 문자) 리더를 통해 효율적으로 PDP-1에 공급합니다.TECO를 실행하면 편집된 테이프를 고속(초당 60자) 펀치로 즉시 펀치할 수 있습니다.그러면 온라인 편집에 시간을 낭비하지 않고 바로 어셈블러를 로드하고 실행할 수 있습니다.

TECO의 고도의 검색 조작은, 오프라인의 Flexowriter 인쇄물에 행 번호가 붙어 있지 않은 것이 계기가 되었습니다.따라서 편집 위치는 회선 번호가 아닌 컨텍스트별로 지정해야 합니다.수정 테이프에 충분한 기술력을 제공하기 위해 다양한 루프 및 조건부 구성(TCO 튜링 완전화)이 포함되었습니다.간결한 구문은 수정 테이프를 준비하는 데 필요한 키 입력 수를 최소화했습니다.

수정 테이프는 프로그램이었고 다른 프로그램과 마찬가지로 디버깅이 필요했습니다.가장 단순한 글로벌 검색 및 교체의 함정조차도 곧 분명해졌습니다.실제로 TECO 편집은 고가의 타이프라이터와 마찬가지로 온라인으로 실시되었습니다(TECO는 고가의 타이프라이터보다 기능이 충실한 에디터였기 때문에 TECO에서는 편집이 훨씬 효율적이었습니다).원래의 PDP-1 버전에는 화면 표시가 없었습니다.편집 프로세스 중에 텍스트 상태를 관찰할 수 있는 유일한 방법은 콘솔 타자기로 텍스트(또는 그 일부)를 입력할 수 있는 명령어를 입력하는 것이었습니다.

1964년까지 MIT의 PDP-6에 특별한 버전의 TECO(TECO-6)가 실장되었습니다.이 버전은 편집 버퍼의 내용을 실시간으로 보여주는 화면 디스플레이를 사용하여 시각적 편집을 지원했으며,[17] 변경 시 업데이트했습니다.TECO-6의 제작자 중에는 Richard Greenblatt와 Stewart [18]Nelson이 있었습니다.

MIT에서는 1971년 [citation needed]가을에도 TECO의 개발이 계속되었다.Carl Mikkelsen은 TECO-6 그래픽 콘솔명령어에 근거해 리얼타임 편집 모드를 실장하고 있었습니다만, 새롭게 인스톨 된 Datapoint-3300 CRT 텍스트 [19]디스플레이로 조작하고 있습니다.그러나 TECO 버퍼 구현은 단일 문자 삽입 또는 삭제 기능을 처리하는 데 매우 비효율적이었습니다.편집은 PDP-10의 100%를 소비했습니다.Richard Greenblatt의 지원을 받아 1972년 여름 Carl은 TECO 버퍼 스토리지를 다시 구현하고 매크로를 네이티브 PDP-10 [citation needed]코드로 수정했습니다.실시간 모드로 들어가려면cntl+,R 이것은 control-R 모드라고 불립니다.동시에 Rici Liknaitski는 입력 시간 매크로(+)cntl]를 추가해 명령 문자열이 [citation needed]실행되었을 때가 아니라 읽혔을 때 동작했다.읽기 시간 매크로에 의해, Q-registers라고 불리는 TECO 보조 텍스트 버퍼가 [citation needed]보다 유용하게 되었습니다.칼은 Q-레지스터 네임스페이스를 확장했다.읽기 시간 매크로, 큰 Q 레지스터 네임스페이스 및 효율적인 버퍼 조작을 통해 각 키를 [20]매크로에 바인드하기 위한 단계가 설정되었습니다.이러한 편집 매크로는 Emacs[21]진화했습니다.

VMS의 실장은 오랜 역사를 가지고 있습니다.PDP-8 어셈블리에 실장된 TECO-8로 시작되었습니다.이 코드가 PDP-11 어셈블리로 변환되어 TECO-11이 생성되었습니다.TECO-11은 PDP-11 호환성 모드의 VAX/VMS의 이전 버전에서 사용되었습니다.이후 PDP-11 어셈블리에서 VAX 어셈블리로 변환되어 TECO32가 생산되었습니다.그 후 TECO32는 Alpha Itanium의 OpenVMS와 호환되도록 VEST 및 ATEM 바이너리 변환 유틸리티로 변환되었습니다.[22][23][24]

OS/8 MUNG 명령어

OS/8 CCL MUNG 명령어는 TECO를 호출하여 지정된 읽기 및 실행을 수행하였습니다.TECCO 매크로옵션 명령줄 매개 변수를 통해 적응성이 [25]향상되었습니다.

프로그래머의 도구로서

펀치 카드 시대와 그 직후에는 펀치 카드 기반에서 시작된 소스 프로그램이 있었습니다.코멘트는 종종 단일 주변 별표와 위쪽/아래쪽 전체 별표를 포함하는 일련의 행이었다.일단 카드가 온라인으로 옮겨지면, 주변 스타들을 재정비하는 것은 귀찮은 일이었다.TECO가 구조...[26][27]

프로그래밍 언어로서

TECO 프로그래밍 언어의 불명확함은 1983년 7월 Ed Post에서 Datamation에 보낸 편지인 "Real Programmers Don't Use Pascal"의 다음 인용문에 설명되어 있습니다.

TECO 명령어시퀀스는 판독 가능한 텍스트보다 전송로 노이즈와 매우 유사하다는 것이 관찰되었습니다.TECO에서 즐길 수 있는 재미있는 게임 중 하나는 명령줄에 이름을 입력하고 어떤 기능을 하는지 추측하는 것입니다.TECO와 대화하는 동안 발생할 수 있는 입력 오류는 아마도 프로그램을 파괴할 수도 있고, 심지어 더 나쁜 것은 한때 작동하던 서브루틴에 [28]미묘하고 신비로운 버그를 발생시킬 수도 있다는 것입니다.

텍스트 [29]편집의 기술」의 저자인 크레이그 핀셋에 의하면, TECO는 「쓰기 전용」언어로 기술되고 있습니다.이는 TECO에서 프로그램을 작성하면, 적절한 문서 작성 없이는, 그 내용을 이해하는 것이 매우 어렵다는 것을 의미합니다.

구문에도 불구하고 TECO 명령어는 매우 강력했으며 MS-DOS 및 Unix용 클론은 여전히 사용할 수 있습니다.

TECO 명령어는 문자(컨트롤 문자 포함)이며 프롬프트는 1개의 아스타리스크입니다.

*

이스케이프 키는 인수가 필요한 명령어 끝을 표시한 후 두 번 누르면 입력된 명령어 실행이 시작됩니다.

*$

코드 예시

hello.c라는 이름의 파일에는 다음 내용이 포함되어 있습니다.

 인트 주된(인트 argc,  **argv)  {      인쇄물("안녕하세요!\n");      돌아가다 0;  } 

다음 TECO 세션(프롬프트가 "*"이고 "$"는 ESC가 에코되는 방식임을 주의)을 사용하여 "Hello"를 "Goodbye"로 변경할 수 있습니다.

*EBhello.c$ 백업 시 읽기/쓰기용 파일 열기 *P$첫 페이지 읽기 *Shello$0TT$ "Hello"를 검색하여 행(검색된 문자열 뒤에 배치된 포인터) printf("Hello world!"\n"); 행 *-5DIGoodbye$0을 인쇄합니다.TT$ 포인터 앞 5글자 삭제('안녕하세요') 및 "안녕하세요" 삽입 후 행 인쇄 f("Goodbye world!"\n"); 업데이트된 행 *EX$ 나머지 파일을 복사하고 종료합니다.

이 두 가지 예제 프로그램은 PDP-11 TECO User's Guide에서 가져온 각 행의 첫 번째 문자를 기반으로 한 현재 텍스트버퍼의 간단한 교환 종류입니다.gotostructured 버전이 표시됩니다.

예 1

!j야!0aua!시작하기 점프, 레지스터 A에서 1일 char를 로드합니다!!CONT!l 0aub!다음 줄의 레지스터는 B에 하중 1 태우다!qa-qb"g전 권리락 k-l ga 1uz'!만약 A>, B, 스위치 선과 레지스터에 국기 Z!!z-에 qbua!하중 B."g -l START @ o/CONT/'!루프 다시 buf에 또 다른 라인.페르! qz"g 0uz @o/START/! 마지막 패스로 스위치가 작성된 경우 반복합니다.

예 2

0uz!명확한 반복 국기입니다!<>j 0aua 나는!등록한으로 로드 1char!<>0aub!다음 줄의 A를 B로 하중 1 태우다!qa-qb"g 전 권리락 k-l ga -1uz'!A만약 A>, B, 스위치 선과 세트 국기입니다!qbua!짐 B!나는 .-z.                     !루프 back 버퍼에 다른 회선이 있는 경우 !qz;> !스위치가 마지막 패스일 경우 반복합니다.

메모들

  1. ^ "DEC Timesharing". The DEC Professional. Tee'koh
  2. ^ 「강력하고 세련된 텍스트 에디터, TECO(Text Editor and Corrector)...Bell, C. Gordon; Mudge, J. Craig; McNamara, John E. (2014). Computer Engineering: A DEC View of Hardware Systems Design. ISBN 978-1483221106.
  3. ^ DEC의 DEC-10-UTECA-A-D 매뉴얼 표지의 이름은 "Text Editor And Corrector(Text Editor And Corrector)"입니다.
  4. ^ a b PDP 8/e small computer handbook. 1970. pp. 2–30.
  5. ^ a b c d Murphy, Dan (October–December 2009). "The Beginnings of TECO" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/mahc.2009.127. S2CID 18805607.
  6. ^ ACM의 위원회를 인용한다(19권, No. 12, 1976 참조).
  7. ^ "TECO". The Jargon File. v.4.4.7. ibiblio.
  8. ^ "A History of EMACS".
  9. ^ Mario Biagioli; Peter Jaszi; Martha Woodmansee (2015). Making and Unmaking Intellectual Property: Creative Production. ISBN 022617249X. EMACS was originally built on top of TECO
  10. ^ Harley Hahn (2016). Harley Hahn's Emacs Field Guide. p. 9. ISBN 978-1484217030.
  11. ^ "TECO Pocket Guide". <tab>text$, Inserts specified text preceded by a tab.
  12. ^ "Standard TECO Text Editor and Corrector". Standard TECO. Text Editor and Corrector for the. VAX, PDP-11, PDP-10, and. PDP-8.
  13. ^ "Doug Jones's DEC PDP-8 FAQs". What programming languages were supported on the PDP-8? ... TECO, the text editor, was included in the standard OS/8 distributions
  14. ^ "VSI OpenVMS DCL Dictionary: A-Z" (PDF). vmssoftware.com. April 2020. Retrieved 2020-09-13.
  15. ^ "Summary of TECO commands". From a collection of MIT PDP-1 paper tapes at the Computer History Museum. Archived from the original on 2008-01-18. Retrieved 2007-09-12.
  16. ^ Murphy, Dan (2009). "The Beginnings of TECO" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/MAHC.2009.127. S2CID 18805607.
  17. ^ Samson, Peter (July 23, 1965). "PDP-6 TECO". Memorandum MAC-M-250. p. 9. hdl:1721.1/5917. Retrieved 2007-09-12.
  18. ^ Edwards, Daniel J. (October 29, 1964). "TECO 6". Memorandum MAC-M-191. p. 2. Archived from the original on 2007-09-28. Retrieved 2007-09-12.
  19. ^ "For the Time Sharing Computer User: Datapoint 3300" (PDF). Computer Terminal Corporation. Retrieved 2009-10-27.
  20. ^ "Teco Editor". c2.com. August 16, 2010. Retrieved 2013-08-17.
  21. ^ "An Introduction to the EMACS Editor" (PDF). MIT. January 1978. Archived from the original (PDF) on 2020-10-27. Retrieved 2016-11-15.
  22. ^ "tecox Readme". github.com. 2019-06-10. Retrieved 2020-09-13.
  23. ^ "VAX PDP11 Compatibility Mode". comp.os.vms.narkive.com. 2019-08-06. Retrieved 2020-09-13.
  24. ^ "Andy Goldstein retirement". comp.os.vms.narkive.com. 2009-06-12. Retrieved 2020-09-13.
  25. ^ "TECO Reference Manual digital equipment corporation" (PDF).
  26. ^ Martin Pring (July 1982), Why Teco
  27. ^ 그는 동료 칼 B의 이름을 따서 이 글을 썼다.마르바흐는 DEC 지향 정기 간행물의 편집자가 되었고 "왜 테크노?"를 썼다.두 항목이 함께 출판되었습니다.
  28. ^ Post, Ed (July 1983). "Real Programmers Don't Use PASCAL". Datamation. 29 (7): 263–265.
  29. ^ Finseth, Craig A. (2006). The Craft of Text Editing. Lulu.com. ISBN 978-1-4116-8297-9.

레퍼런스

외부 링크

이 문서는 부분적으로 퍼블릭 도메인에 있는 전문 용어 파일에 기초하고 있습니다.