Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Гамильтон C оболочки является клоном из Unix C оболочки и утилиты [1] [2] для Microsoft Windows , созданный Николь Гамильтон [3] в Гамильтон Laboratories как совершенно оригинальное произведение, а не на основе какого - либо предварительного кода. Впервые она была выпущена на OS / 2 12 декабря 1988 года [4] [5] [6] [7] [8] [9] и в Windows NT в июле 1992 года. [10] [11] [12] ОС » Версия / 2 была прекращена в 2003 году, но версия для Windows продолжает активно поддерживаться.

Дизайн [ править ]

Оболочка Hamilton C отличается от оболочки Unix C по нескольким параметрам. К ним относятся его архитектура компилятора , использование потоков и решение следовать соглашениям Windows, а не Unix. [8] [9]

Парсер [ править ]

Оболочка Hamilton C и Cygwin bash в Windows 7 , демонстрирующие использование рекурсии для факторинга.

Исходная оболочка C использует специальный синтаксический анализатор. Это привело к жалобам на его ограничения. Он работает достаточно хорошо для тех вещей, которые пользователи вводят в интерактивном режиме, но не очень хорошо для более сложных команд, которые пользователю может потребоваться время для написания в сценарии. Например, невозможно передать вывод инструкции foreach в grep . Существовал предел сложности команды, которую он мог обработать. [13]

Напротив, Гамильтон использует нисходящий рекурсивный анализатор спуска, который позволяет ему компилировать операторы во внутреннюю форму перед их запуском. [1] [8] В результате операторы могут быть вложены или распределены по конвейеру произвольно. [6] Язык также был расширен за счет встроенных и определяемых пользователем процедур, локальных переменных, с плавающей запятой и дополнительных выражений, операторов редактирования и подстановочных знаков, включая конструкцию с подстановочными знаками «неопределенный каталог», записанную как « ... », ноль или более уровней каталогов, необходимых для соответствия остальной части шаблона. [14]

Темы [ править ]

Оболочка Hamilton C и петли даты Cygwin bash .

Не имея форка или высокопроизводительного способа воссоздать эту функциональность, Гамильтон вместо этого использует средства потоков Windows . [6] [8] Когда создается новый поток, он выполняется в том же пространстве процесса и разделяет все состояние процесса. Если один поток изменяет текущий каталог или содержимое памяти, это изменяется для всех потоков. Намного дешевле создать поток, чем процесс, но между ними нет изоляции. Чтобы воссоздать отсутствующую изоляцию отдельных процессов, потоки взаимодействуют для совместного использования ресурсов с помощью блокировок . [15]

Соглашения Windows [ править ]

Hamilton отличается от других оболочек Unix тем, что он также напрямую поддерживает соглашения Windows для букв дисков , косых черт имен файлов , escape-символов и т. Д. [9]

Ссылки [ править ]

  1. ^ a b Краткий справочник по ранним оболочкам Hamilton C (PDF) . Лаборатории Гамильтона, Вейланд, Массачусетс. 10 июля 1990 . Проверено 28 июля, 2016 .
  2. ^ Faught, Данни (31 августа 1996). «Ракушечная игра» . Журнал обеспечения качества программного обеспечения . 3 (4). Архивировано из оригинала на 1 марта 2012 года . Проверено 8 апреля 2013 года .
  3. Автор обсудила свой переход от Дугласа Гамильтона на панельной дискуссии в Стэнфорде, которая начинается в 29:37. Николь Гамильтон, Карл Ингрэм, Лиз Кеннеди Майерс, Том Миллс, Джон Ордуэй, Скотт Тэтчер, Кирсти Уайлд (модератор) (28 ноября 2007 г.). Класс 1972 года Панельная дискуссия: Черт, нет, мы не пойдем (Тихо в ночь)! . Стэнфорд Ассоциация выпускников, ITunes U . Проверено 28 июля, 2016 .
  4. ^ Махлис, Шарон. «Писатель Wayland для IBM» (PDF) . Middlesex News (18 декабря 1988 г.): 2E . Проверено 28 июля, 2016 .
  5. ^ Сассман, Энн. "Hamilton C Shell ускоряет разработку приложений OS / 2" (PDF) . PC Week (26 декабря 1988 г. - 2 января 1989 г.): 37 . Проверено 28 июля, 2016 .
  6. ^ a b c Гамильтон, Дуглас А. "Объявление оболочки C Гамильтона" (PDF) . IBM Personal Systems Developer (лето 1989 г.): 119–121 . Проверено 28 июля, 2016 .
  7. Ричман, Скотт (январь 1991 г.). "Изучение оболочки Гамильтона C" (PDF) . Журнал доктора Добба . Проверено 28 июля, 2016 .
  8. ^ a b c d Гуталь, Кеннет Г. "С-оболочка Гамильтона" (PDF) . Журнал MIPS (сентябрь 1989 г.) . Проверено 28 июля, 2016 .
  9. ^ a b c Ягер, Том. «OS / 2, стиль Unix» (PDF) . Журнал BYTE (февраль 1990 г.) . Проверено 28 июля, 2016 .
  10. ^ Оболочка Hamilton C для Windows Release Notes 4.0 , получено 28 июля 2016 г.
  11. Гамильтон, Дуг (27 июля 1995 г.). "Ищу C-Shell на NT" . Группа новостейcomp.os.ms-windows.nt.misc . Usenet: [email protected] . Проверено 8 октября 2010 года . 
  12. ^ Deignan, Майкл П. (31 марта 1998). «Гамильтон Си Шелл» . Windows для ИТ-специалистов . Проверено 22 сентября 2019 года .
  13. ^ Программирование на Csh считается вредным , Том Кристиансен
  14. ^ «Подстановочные знаки и сопоставление с образцом» . Гамильтон лаборатории . Проверено 13 августа 2018 года .
  15. Гамильтон, Дуг (21 апреля 1995 г.). "Предложения для блокировки нескольких читателей / одного писателя?" . Группа новостейcomp.os.ms-windows.nt.misc . Usenet: [email protected] . Проверено 28 июля, 2016 . 

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Руководство пользователя Hamilton C Shell