해밀턴 C 셸

Hamilton C shell
해밀턴 C 셸
Hamilton C shell x64 on Windows 7.png
Windows 7 데스크톱의 64비트 Hamilton C 쉘.
원저작자니콜 해밀턴
초기 릴리즈1988년 12월 12일, 33년 전(1988년 12월 12일)
안정된 릴리스
5.2.g / 2017년 3월 5일, 5년 전(2017-03-05)
기입처C
운영 체제Windows (이력 OS/2)
유형Windows에서의 Unix
면허증.상업의 독점 소프트웨어
웹 사이트hamiltonlabs.com/Cshell.htm

Hamilton C 쉘은 Unix C 쉘의 복제품이며 Microsoft[1][2] Windows용 유틸리티로 Nicole[3] Hamilton이 Hamilton Laboratories에서 만든 것으로 이전 코드를 기반으로 하지 않습니다.1988년 12월[4][5][6][7][8][9] 12일 OS/2로 처음 [10][11][12]출시되었으며 1992년 7월 Windows NT로 출시되었습니다.OS/2 버전은 2003년에 단종되었지만 Windows 버전은 계속 지원되고 있습니다.

설계.

해밀턴 C 쉘은 몇 가지 점에서 Unix C 쉘과 다릅니다.여기에는 컴파일러 아키텍처, 스레드 사용 및 Unix가 아닌 Windows 규약을 [8][9]따르는 결정이 포함됩니다.

파서

Windows 7에서는 해밀턴 C 과 Cygwinbash가 팩터링을 위한 재귀의 사용을 나타내고 있습니다.

원래의 C 쉘은 애드혹파서를 사용합니다.이것은 그것의 한계에 대한 불평으로 이어졌다.사용자가 대화식으로 입력하는 종류에는 충분하지만 사용자가 스크립트에 쓰는 데 시간이 걸릴 수 있는 복잡한 명령어에는 적합하지 않습니다.예를 들어 foreach 문의 출력을 grep로 파이핑할 수 없습니다.명령어를 얼마나 복잡하게 처리할 [13]수 있는지에 한계가 있었습니다.

반면 해밀턴은 문장을 실행하기 전에 [1][8]내부 형식으로 컴파일할 수 있는 하향식 재귀 하강 파서를 사용합니다.그 결과,[6] 임의로 스테이트먼트를 네스트 또는 파이핑할 수 있습니다.이 언어는 임베디드 및 사용자 정의 프로시저, 로컬 변수, 부동소수점 및 추가 표현식, 편집 및 와일드카드 연산자로 확장되었습니다.여기에는 다음과 같이 기술된 "무한 디렉토리" 와일드카드 구조가 포함됩니다....패턴의 나머지 부분을 [14]일치시키기 위해 필요한 0 이상의 디렉토리 레벨과 일치합니다.

스레드

해밀턴 C 쉘 및 Cygwinbash 날짜 루프.

Fork 또는 그 기능을 재작성하는 고성능 방법이 [6][8]없기 때문에 Hamilton은 대신 Windows 스레드 기능을 사용합니다.새 스레드가 생성되면 동일한 프로세스 공간 내에서 실행되며 모든 프로세스 상태를 공유합니다.하나의 스레드가 현재 디렉토리 또는 메모리의 내용을 변경하면 모든 스레드에 대해 변경됩니다.프로세스보다 스레드를 작성하는 것이 훨씬 저렴하지만 분리 작업은 없습니다.개별 프로세스의 누락된 분리를 재현하기 위해 스레드는 [15]잠금을 사용하여 리소스를 공유하기 위해 협력합니다.

Windows 표기법

해밀턴은 드라이브 문자, 파일 이름 슬래시, 이스케이프 문자 [9]등에 대한 Windows 규칙을 직접 지원한다는 점에서 다른 Unix 쉘과 다릅니다.

레퍼런스

  1. ^ a b 빠른Hamilton C shell Quick Reference (PDF). Hamilton Laboratories, Wayland, MA. Jul 10, 1990. Retrieved July 28, 2016.
  2. ^ Faught, Danny (Aug 31, 1996). "The shell game". Software QA Magazine. 3 (4). Archived from the original on March 1, 2012. Retrieved Apr 8, 2013.
  3. ^ 저자는 29시 37분부터 스탠포드에서 열린 토론회에서 더글러스 해밀턴과의 이행을 논의했다.Nicole Hamilton, Carl Ingram, Liz Kennedy Myers, Tom Mills, John Ordway, Scott Thatcher, Kirstie Wilde (Moderator) (Nov 28, 2007). Class of 1972 Panel Discussion: Hell No We Won't Go (Quietly Into the Night)!. Stanford Alumni Association, iTunes U. Retrieved July 28, 2016.
  4. ^ Machlis, Sharon. "Wayland writer for IBM" (PDF). Middlesex News (Dec 18 1988): 2E. Retrieved July 28, 2016.
  5. ^ Sussman, Ann. "Hamilton C Shell Speeds Development Of OS/2 Applications" (PDF). PC Week (Dec 26 1988 – Jan 2 1989): 37. Retrieved July 28, 2016.
  6. ^ a b c Hamilton, Douglas A. "Hamilton C shell Announcement" (PDF). IBM Personal Systems Developer (Summer 1989): 119–121. Retrieved July 28, 2016.
  7. ^ Richman, Scott (Jan 1991). "Examining the Hamilton C Shell" (PDF). Dr. Dobb's Journal. Retrieved July 28, 2016.
  8. ^ a b c d Goutal, Kenneth G. "The Hamilton C shell" (PDF). MIPS Magazine (Sep 1989). Retrieved July 28, 2016.
  9. ^ a b c Yager, Tom. "OS/2, Unix Style" (PDF). BYTE Magazine (Feb 1990). Retrieved July 28, 2016.
  10. ^ 2016년 7월 28일 검색된 Windows 릴리스 노트 4.0용 해밀턴 C 쉘.
  11. ^ Hamilton, Doug (Jul 27, 1995). "Looking for C-Shell on NT". Newsgroup: comp.os.ms-windows.nt.misc. Usenet: hamilton.806823765@BIX.com. Retrieved Oct 8, 2010.
  12. ^ Deignan, Michael P. (March 31, 1998). "Hamilton C Shell". Windows IT Pro. Retrieved September 22, 2019.
  13. ^ Csh 프로그래밍이 Tom Christiansen에 의해 유해하다고 간주됨
  14. ^ "Wildcarding and pattern matching". Hamilton Laboratories. Retrieved August 13, 2018.
  15. ^ Hamilton, Doug (Apr 21, 1995). "Suggestions for multiple-reader/single-writer lock?". Newsgroup: comp.os.ms-windows.nt.misc. Usenet: hamilton.798430053@BIX.com. Retrieved July 28, 2016.

외부 링크