Оболочка Hamilton C

редактировать
Оболочка Hamilton C
64-разрядная оболочка Hamilton C на рабочем столе Windows 7. 64-битная оболочка Hamilton C на рабочем столе Windows 7.
Исходный автор (авторы) Николь Гамильтон
Первоначальный выпуск12 декабря 1988 г.; 31 год назад (1988-12-12)
Стабильный выпуск 5.2.g / 5 марта 2017 г.; 3 года назад (2017-03-05)
Написано вC
Операционной системе Windows
Тип Unix Shell на Windows
Лицензия Коммерческая проприетарное программное обеспечение
Веб-сайтhamiltonlabs.com / Cshell.htm

Hamilton C shell является клоном Оболочка Unix C и утилиты для Microsoft Windows, созданные Николь Гамильтон из Hamilton Laboratories, как полностью оригинальная работа, не основанная на каком-либо предыдущем коде. Впервые он был выпущен в OS / 2 12 декабря 1988 г. и в Windows NT в июле 1992 г. Версия OS / 2 была прекращена в 2003 г., но версия для Windows продолжает активно использоваться. поддерживается.

Содержание
  • 1 Дизайн
    • 1.1 Синтаксический анализатор
    • 1.2 Потоки
    • 1.3 Условные обозначения Windows
  • 2 Ссылки
  • 3 Внешние ссылки
Дизайн

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

Parser

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

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

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

Threads

Hamilton C shell и Cygwin bash циклы дат.

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

соглашений Windows

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

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-22 11:51:26
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте