~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 735FE4171D2691BC1BD08E8CD5B29413__1717228440 ✰
Заголовок документа оригинал.:
✰ Tcl - Wikipedia ✰
Заголовок документа перевод.:
✰ ТКЛ — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Tcl ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/73/13/735fe4171d2691bc1bd08e8cd5b29413.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/73/13/735fe4171d2691bc1bd08e8cd5b29413__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:37:46 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 1 June 2024, at 10:54 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

ТКЛ — Википедия Jump to content

Ткл

Из Википедии, бесплатной энциклопедии
Ткл
Логотип Tcl
Парадигма Мультипарадигмальность : событийно-ориентированная , функциональная , императивная , объектно-ориентированная.
Разработано Джон Оустерхаут
Разработчик Основная команда Tcl [1]
Впервые появился 1988 год ; 36 лет назад ( 1988 )
Стабильная версия
8.6.14 [2]  Отредактируйте это в Викиданных/ 29 февраля 2024 г .; 3 месяца назад ( 29 февраля 2024 г. )
Дисциплина набора текста Динамическая типизация , все можно рассматривать как строку
Лицензия BSD -стиль [3]
Расширения имен файлов .tcl, .tbc [4]
Веб-сайт www .tcl-lang .org
www .tcl .тк
Основные реализации
ActiveTcl Андровиш
Диалекты
Джим , Орел
Под влиянием
АВК , Лисп
Под влиянием
PHP , [5] PowerShell , [6] Чай , TH1 [7]

Tcl (произносится как « щекотать » или как инициализм [8] ) — высокоуровневый общего назначения интерпретируемый язык динамический программирования . Он был разработан с целью сделать его очень простым, но мощным. [9] Tcl приводит все в форму команды , даже такие программные конструкции, как назначение переменных и определение процедур. [10] Tcl поддерживает несколько парадигм программирования , включая объектно-ориентированный , императивный , функциональный и процедурный стили.

Он обычно используется встраиваемым в C , приложения [11] для быстрого прототипирования , скриптовых приложений, графических интерфейсов и тестирования. [12] Интерпретаторы Tcl доступны для многих операционных систем , что позволяет коду Tcl работать в самых разных системах. Поскольку Tcl — очень компактный язык, он используется на платформах встраиваемых систем как в полной форме, так и в нескольких других небольших версиях. [13]

Популярная комбинация Tcl с расширением Tk называется Tcl/Tk (произносится как «tickle teak» или инициализм ) и позволяет создавать графический интерфейс пользователя (GUI) непосредственно на Tcl. Tcl/Tk включен в стандартную установку Python в виде Tkinter .

История [ править ]

Язык программирования Tcl был создан весной 1988 года Джоном Оустерхаутом, когда он работал в Калифорнийском университете в Беркли . [14] [15] Первоначально «рожденный из разочарования», [11] по словам автора, программисты разрабатывали свои собственные языки для расширения программного обеспечения для автоматизации электронного проектирования (EDA) и, в частности, СБИС инструмента проектирования Magic , который в то время был профессиональным фокусом Джона. [16] Позже Tcl получил признание сам по себе. Оустерхаут был награжден премией ACM Software System Award в 1997 году за Tcl/Tk. [17]

Название первоначально происходит от языка Tool Command , , но обычно пишется Tcl а не TCL . [18]

Дата Событие
Январь 1990 г. Tcl анонсирован за пределами Беркли (зима USENIX ).
июнь 1990 г. Ожидайте анонс (лето USENIX).
Январь 1991 г. Первый анонс ТК (зимний USENIX).
июнь 1993 г. Первая конференция Tcl/Tk (Беркли). Менеджер геометрии [table] (предшественник [grid]), [incr Tcl] , TclDP и Groupkit, анонсированные там.
август 1997 г. В Tcl 8.0 появился компилятор байт-кода. [19]
апрель 1999 г. Tcl 8.1 представляет полную Unicode поддержку [20] и расширенные регулярные выражения . [21]
август 1999 г. Tcl 8.2 представляет архитектуру расширения Tcl (TEA) [22]
август 2000 г. Сформирована основная команда Tcl, которая перевела Tcl на модель разработки, более ориентированную на сообщество. [1]
сентябрь 2002 г. Девятая конференция Tcl/Tk (Ванкувер). Анонс упаковочной системы Starkit. Выпущен Tcl 8.4.0. [23]
декабрь 2007 г. В Tcl 8.5 добавлены новые типы данных, новый репозиторий расширений, bignums , [24] лямбды . [25] [26]
декабрь 2012 г. В Tcl 8.6 добавлена ​​встроенная система динамических объектов TclOO и безстековая оценка. [27]

Конференции и семинары Tcl проводятся как в США, так и в Европе. [28]

Особенности [ править ]

Файл Tcl, редактируемый в Eclipse IDE

Возможности Tcl включают в себя

  • Все операции являются командами , включая языковые структуры. Они записываются в префиксной записи .
  • Команды обычно принимают переменное количество аргументов ( вариативное число аргументов ).
  • Все можно динамически переопределить и переопределить. Собственно, ключевых слов нет, поэтому можно добавлять или изменять даже управляющие структуры, хотя это нецелесообразно.
  • Все типы данных можно манипулировать как строки , включая исходный код . Внутри переменные имеют такие типы, как целочисленные и двойные, но преобразование происходит чисто автоматически.
  • Переменные не объявляются, а им присваиваются. Использование неопределенной переменной приводит к ошибке.
  • Полностью динамическая объектная система на основе классов TclOO, включая расширенные функции, такие как метаклассы, фильтры и примеси . [29]
  • Управляемый событиями интерфейс для сокетов и файлов . Также возможны события, основанные на времени и определяемые пользователем.
  • ограничена лексической (статической) областью , но Видимость переменных по умолчанию uplevel и upvar позволяя процедурам взаимодействовать с областями охватывающих функций.
  • Все команды, определенные самим Tcl, генерируют сообщения об ошибках при неправильном использовании.
  • Расширяемость с помощью C , C++ , Java , Python и Tcl.
  • Интерпретируемый язык с использованием байт-кода
  • Полная поддержка Unicode (вначале 3.1, регулярно обновляется), впервые выпущена в 1999 году.
  • Обычные выражения [21]
  • Кроссплатформенность : Windows API ; Unix , Linux , Macintosh и т. д.
  • Тесная кросс-платформенная интеграция с оконным ( GUI ) интерфейсом Tk .
  • Существует несколько механизмов распределения:
    • Полная версия для разработки (для Windows, например ActiveState Tcl , см. [1] )
    • Tclkits (один исполняемый файл, содержащий полную среду выполнения сценариев, размером всего около 4 мегабайт), Starkits (механизм оболочки для доставки приложения автономным, не требующим установки и легко переносимым способом) и Starpacks (объединение Starkit с Tclkit для создать Starpack — единый исполняемый файл для конкретной платформы, идеально подходящий для простого развертывания)
    • Jim Interpreter , небольшая реализация Tcl.
    • Свободно распространяемый исходный код под лицензией BSD . [30]

Safe-Tcl [ править ]

Safe-Tcl — это подмножество Tcl, которое имеет ограниченные функции, поэтому сценарии Tcl не могут нанести вред хост-компьютеру или приложению. [31] Доступ к файловой системе ограничен, а выполнение произвольных системных команд запрещено. Он использует модель двойного интерпретатора, при которой ненадежный интерпретатор выполняет код в ненадежном сценарии. Он был разработан Натаниэлем Боренштейном и Маршаллом Роузом для включения активных сообщений в электронную почту. Safe-Tcl можно включать в электронную почту, если application/safe-tcl и multipart/enabled-mail поддерживаются . С тех пор функциональность Safe-Tcl была включена в стандартные выпуски Tcl/Tk. [32] [33]

Синтаксис и фундаментальная семантика [ править ]

Синтаксис и семантика Tcl регулируются двенадцатью правилами. [34] известный как Додекалог. [35]

Сценарий Tcl состоит из серии вызовов команд. Вызов команды представляет собой список слов, разделенных пробелами и заканчивающихся новой строкой или точкой с запятой. Первое слово — это имя команды, которая может быть встроена в язык, найдена в доступной библиотеке или определена в самом скрипте. Следующие слова служат аргументами команды:

Имя команды Аргумент1 Аргумент2 ... АргументN
 

В следующем примере используется команда puts (сокращение от «put string») для отображения текстовой строки на консоли хоста:

ставит   «Привет, Мир!» 

При этом отправляется строка «Hello, World!» на стандартное устройство вывода вместе с добавленным символом новой строки.

Переменные и результаты других команд можно заменить строками, как в этом примере, где команды set и expr используются для сохранения результата вычисления в переменной (обратите внимание, что Tcl не использует = в качестве оператора присваивания), а затем использует puts для печати результата вместе с пояснительным текстом:

# expr оценивает текстовую строку как 
 набор   выражений sum   [expr   1  +  2  +  3  +  4  +  5  ] 
 помещает   «Сумма чисел 1..5 равна $sum». 

The #персонаж вводит комментарий . Комментарии могут появляться везде, где интерпретатор ожидает имя команды.

# с фигурными скобками замена переменных выполняется выражением 
 set   x   1 
 set   sum   [expr   {  $x   +   2   +   3   +   4   +   5  }];    # $x не заменяется перед передачей параметра в expr; 
                                       # expr заменяет $x на 1, а при вычислении выражения 
 получается:   «Сумма чисел 1..5 равна $sum».   ;    # сумма равна 15 
# без фигурных скобок подстановка переменных происходит на сайте определения (лексическая область видимости) 
 set   x   2 
 set   op   * 
 set   y   3 
 set   res   [expr   $x$op$y  ];    # $x, $op и $y заменяются, и выражение оценивается как 6, 
 что означает   «$x $op $y is $res».   ;    # $x, $op, $y и $res заменяются и оцениваются как строки 

Как видно из этих примеров, в языке есть одна базовая конструкция: команда. Механизмы кавычек и правила замены определяют, как обрабатываются аргументы каждой команды.

происходит одна специальная замена Перед анализом любых команд или аргументов . Если последний символ в строке (т. е. непосредственно перед новой строкой) представляет собой обратную косую черту, то комбинация обратной косой черты и новой строки (а также любые пробелы или табуляции, следующие сразу за новой строкой) заменяются одним пробелом. Это обеспечивает механизм продолжения строки , благодаря которому длинные строки исходного кода могут переноситься на следующую строку для удобства читателей.

Продолжая обычную обработку аргументов, слово, начинающееся с символа двойной кавычки ( ") распространяется на следующий символ двойной кавычки. Таким образом, такое слово может содержать пробелы и точки с запятой, при этом эти символы не интерпретируются как имеющие какое-либо особое значение (т. е. они рассматриваются как обычные текстовые символы). Слово, которое начинается с открывающей фигурной скобки ( {) распространяется на следующий символ закрывающей фигурной скобки ( }). Внутри фигурных скобок подавляются все формы замены, за исключением ранее упомянутого исключения обратной косой черты и новой строки. Слова, не заключенные ни в одну из конструкций, называются голыми словами.

В словах без кавычек и в двойных кавычках могут встречаться три типа замены:

  • Подстановка команд заменяет содержимое сбалансированных квадратных скобок результатом вычисления скрипта, содержащегося внутри. Например, [expr 1+2+3] заменяется результатом вычисления содержащегося выражения (в данном случае 6).
  • При замене переменной имя переменной со знаком доллара заменяется содержимым (или значением) переменной. Например, $fooзаменяется содержимым переменной с именем «foo». Имя переменной может быть заключено в фигурные скобки, чтобы отделить его от последующего текста в неоднозначных случаях (например, ${foo}ing).
  • Замена обратной косой черты заменяет обратную косую черту, за которой следует буква, другим символом. Например, \n заменяется новой строкой.

Замена происходит слева направо за одно сканирование каждого слова. Любой замененный текст не будет повторно сканироваться на предмет возможных дальнейших замен. Однако в одном слове может встречаться любое количество замен.

Начиная с Tcl 8.5, любое слово может иметь префикс {*}, что приводит к разбиению слова на составляющие его подслова для построения вызова команды (аналогично ,@ последовательность . функции квазицитирования Лиспа)

Как следствие этих правил, результат любой команды может использоваться в качестве аргумента для любой другой команды. Обратите внимание, что, в отличие от командных оболочек Unix , Tcl не анализирует повторно никакую строку, если это явно не указано, что делает интерактивное использование более громоздким, а использование сценариев более предсказуемым (например, наличие пробелов в именах файлов не вызывает затруднений).

Единственный знак равенства ( =) вообще не играет особой роли в языке. Знак двойного равенства ( ==) — это проверка на равенство, которая используется в контекстах выражений, таких как expr команда и в первом аргументе if. (Обе команды являются частью стандартной библиотеки; специального места в ней они не имеют и при желании могут быть заменены.)

Большинство команд Tcl, особенно в стандартной библиотеке, являются переменными , и proc (конструктор для скриптовых командных процедур) позволяет определять значения по умолчанию для неуказанных аргументов и универсальный аргумент, позволяющий коду обрабатывать произвольное количество аргументов.

Tcl не является статически типизированным: каждая переменная может содержать целые числа, числа с плавающей запятой, строки, списки, имена команд, словари или любые другие значения; значения переинтерпретируются (с учетом синтаксических ограничений) как другие типы по требованию. Однако значения неизменяемы , и операции, которые, по-видимому, их изменяют, на самом деле вместо этого просто возвращают новое значение.

Основные команды [ править ]

Наиболее важные команды, относящиеся к выполнению программы и операциям с данными:

  • setзаписывает новое значение в переменную (создает переменную, если она не существует). Если используется только с одним аргументом, он возвращает значение данной переменной (в этом случае она должна существовать).
  • proc определяет новую команду, выполнение которой приводит к выполнению заданного сценария Tcl, записанного как набор команд. return может использоваться для немедленного возврата управления вызывающему объекту.

Обычные команды управления выполнением:

  • ifвыполняет заданное тело скрипта (второй аргумент), если условие (первый аргумент) удовлетворено. За ним могут следовать дополнительные аргументы, начиная с elseif с альтернативным состоянием и телом, или else с дополнительным блоком.
  • while повторяет выполнение данного тела скрипта, пока условие (первый аргумент) остается удовлетворенным
  • foreach выполняет заданное тело, в котором управляющей переменной присваиваются элементы списка один за другим.
  • for ярлык для инициализации управляющей переменной, условия (как в while) и дополнительный оператор «следующая итерация» (команда, выполняемая после выполнения тела)

Вышеупомянутыми командами цикла можно дополнительно управлять с помощью следующих команд:

  • break прерывает выполнение тела и возвращается из команды цикла
  • continueпрерывает выполнение тела, но управление по-прежнему возвращается команде цикла. Для while это означает повторный цикл, поскольку for и foreach, выберите следующую итерацию.
  • return прерывает выполнение текущего тела независимо от глубины процедуры, пока не достигнет границы процедуры, и возвращает заданное значение вызывающей стороне.

Расширенные команды [ править ]

  • exprпередает аргумент отдельному интерпретатору выражений и возвращает вычисленное значение. Обратите внимание, что тот же интерпретатор используется и для «условного» выражения для if и циклические команды.
  • listсоздает список , содержащий все аргументы, или пустую строку, если аргумент не указан. lindex Команда может использоваться для результата для повторного извлечения исходных аргументов.
  • array манипулирует переменными массива .
  • dict манипулирует словарем (начиная с версии 8.5), который представляет собой списки с четным числом элементов, где каждые два элемента интерпретируются как пара ключ/значение.
  • regexp сопоставляет регулярное выражение со строкой.
  • regsub Выполняет замены на основе сопоставления шаблонов регулярных выражений.
  • uplevel — это команда , которая позволяет выполнять командный сценарий в области , отличной от текущей самой внутренней области стека.
  • upvar создает ссылку на переменную в другом фрейме стека.
  • namespace позволяет создавать, получать доступ и уничтожать отдельные контексты для команд и переменных.
  • apply применяет анонимную функцию (начиная с версии 8.5).
  • coroutine, yield, и yieldto создавать и создавать значения из сопрограмм (начиная с версии 8.6).
  • try позволяет перехватывать и обрабатывать ошибки и исключения.
  • catch позволяет получать исключительную прибыль.
  • zlib обеспечивает доступ к средствам сжатия и контрольных сумм библиотеки Zlib (начиная с версии 8.6).

Верхний уровень [ править ]

uplevelпозволяет выполнять командный сценарий в области , отличной от текущей внутренней области стека. Поскольку командный сценарий сам может вызывать процедуры, использующие команду повышения уровня , в конечном итоге это преобразует стек вызовов в дерево вызовов. [36]

Первоначально он был реализован, чтобы позволить процедурам Tcl переопределять встроенные команды (например , for , if или while ) и при этом иметь возможность манипулировать локальными переменными . Например, следующий сценарий Tcl представляет собой повторную реализацию команды for (без обработки исключений ):

proc   for   {  initCmd   testExpr   заранееCmd   bodyScript  }   { 
     повышение уровня   1   $initCmd 
     set   testCmd   [  list   expr   $testExpr  ] 
     while   {[uplevel   1   $testCmd  ]}   { 
         повышение уровня   1   $bodyScript 
         повышение уровня   1   $advanceCmd 
     } 
 } 

Упвар [ править ]

upvarпредписывает одной или нескольким локальным переменным в текущей процедуре ссылаться на переменные во включающем вызове процедуры или на глобальные переменные . Команда upvar упрощает реализацию вызова процедур по имени, а также упрощает создание новых управляющих конструкций в виде процедур Tcl. [37]

Команда decr, которая работает как встроенная incr команда, за исключением того, что она вычитает значение из переменной вместо того, чтобы добавлять его:

proc   decr   {  varName   {  декремент   1  }}   { 
     upvar   1   $varName   var 
      incr   var   [выражение   {  -$декремент  }] 
 } 

Объектно-ориентированный [ править ]

В Tcl 8.6 в 2012 году добавлена ​​встроенная система динамических объектов TclOO. [29] Он включает в себя такие функции, как:

  • Объектная система на основе классов. Это то, чего большинство программистов ожидают от ОО.
  • Позволяет настраивать отдельные объекты и динамически переопределять классы.
  • Мета-классы
  • Фильтры
  • Миксины
  • Система реализации методов собственными способами, так что авторы пакетов, которым нужны существенно разные способы реализации метода, могут сделать это довольно просто.
oo  ::  class   createfruit   {   " 
     метод   eat   {}   { 
         ставит   вкуснятина!" 
      } 
 } 
 oo  ::  class   create   Banana   { 
     суперкласс   Fruit 
      конструктор   {}   { 
         моя   переменная   очищена 
          set   очищено   0 
     } 
     метод   очищен   {}   { 
         моя   переменная   очищена 
          set   очищено   1 
         ставит   «теперь шкура снята» 
     } 
     метод   съедобен  ?    {}   { 
         моя   переменная   очищена 
          return   $peeled 
     } 
     метод   eat   {}   { 
         if   {  !   [  моё   съедобное  ?   ]}   { 
             моя   кожура 
          } 
         next 
     } 
 } 
 set   b   [  banana   new  ] 
 $b   eat                  выводит   «кожа теперь снята»   и   «вкусно!» 
  фрукты   уничтожают 
  $b   eat                  ошибка   «неизвестная команда» 

В Tcl не было объектно-ориентированного (ОО) синтаксиса до 2012 года. [29] поэтому появились различные пакеты расширений, позволяющие реализовать объектно-ориентированное программирование. Они широко распространены в существующем исходном коде Tcl. Популярные расширения включают в себя:

TclOO был добавлен не только для создания мощной объектно-ориентированной системы, но и для того, чтобы пакеты расширений могли создавать объектно-ориентированные абстракции, используя его в качестве основы. После выпуска TclOO incr Tcl был обновлен и теперь использует TclOO в качестве основы. [27]

Разработка веб-приложений [ править ]

Веб-сервер Tcl — это реализация сервера протокола HTTP на чистом Tcl. Он работает как скрипт поверх стандартного интерпретатора Tcl.

Apache Rivet — это система программирования с открытым исходным кодом для HTTP-сервера Apache , которая позволяет разработчикам использовать Tcl в качестве языка сценариев для создания динамических веб-приложений. Rivet похож на PHP , ASP и JSP . Rivet был первоначально разработан Дэймоном Кортни, Дэвидом Велтоном, Массимо Манги, Харальдом Ольманном и Карлом Лехенбауэром . Rivet может использовать любой из тысяч общедоступных пакетов Tcl, которые предлагают бесчисленное количество функций, таких как взаимодействие с базами данных (Oracle, PostgreSQL, MySQL, SQLite и т. д.) или интерфейсы с популярными приложениями, такими как GD Graphics Library .

Взаимодействие с другими языками [ править ]

Tcl изначально взаимодействует с C. языком [38] Это связано с тем, что изначально он был написан как основа для предоставления синтаксического интерфейса для команд, написанных на C, и всех команд на этом языке (включая вещи, которые в противном случае могли бы быть ключевыми словами , например: if или while) реализованы таким образом. реализации команды Каждой функции передается массив значений, описывающих (уже замененные) аргументы команды, и она может интерпретировать эти значения по своему усмотрению.

цифровой Симуляторы логики часто включают в себя интерфейс сценариев Tcl для моделирования Verilog , VHDL и SystemVerilog аппаратных языков .

Существуют инструменты (например, SWIG , Ffidl ) для автоматической генерации необходимого кода для соединения произвольных функций C и среды выполнения Tcl, а Critcl делает обратное, позволяя встраивать произвольный код C внутрь сценария Tcl и компилировать его во время выполнения в DLL .

Пакеты расширений [ править ]

Язык Tcl всегда позволял использовать пакеты расширений, которые предоставляют дополнительные функции, такие как графический интерфейс, автоматизация приложений на основе терминала, доступ к базе данных и т. д. Часто используемые расширения включают в себя:

Тк
Самым популярным расширением Tcl является набор инструментов Tk , который предоставляет библиотеку графического пользовательского интерфейса для различных операционных систем . Каждый графический интерфейс состоит из одного или нескольких фреймов . У каждого кадра есть менеджер макетов.
Ожидать
Одним из других очень популярных расширений Tcl является расширение Expect . Ранняя тесная связь Expect с Tcl во многом ответственна за популярность Tcl в многочисленных областях использования, таких как тестирование Unix, где Expect очень успешно использовался (и до сих пор используется) для автоматизации telnet, ssh и последовательных сеансов для выполнения множество повторяющихся задач (например, создание сценариев для приложений, которые раньше были только интерактивными). Tcl был единственным способом запуска Expect, поэтому Tcl стал очень популярен в этих областях промышленности.
Плитка/ТТК
Плитка/ТТК [39] представляет собой коллекцию виджетов стилей и тем, которая может заменить большинство виджетов в Tk вариантами, которые действительно являются родными для платформы, посредством вызовов операционной системы API . Таким образом рассматриваются темы Windows XP , Windows Classic, Qt (которая подключается к X11 библиотекам среды KDE ) и Aqua (Mac OS X). Тему также можно создать без этих вызовов, используя определения виджетов, дополненные растровыми изображениями . Созданные таким образом темы включают Classic Tk, Step, Alt/Revitalized, Plastik и Keramik. В Tcl 8.4 этот пакет известен как Tile, а в Tcl 8.5 он включен в основной дистрибутив Tk (как Ttk).
Тикс
Tix, Tk Interface eXtension, представляет собой набор компонентов пользовательского интерфейса, расширяющих возможности приложений Tcl/Tk и Python. Это пакет программного обеспечения с открытым исходным кодом, поддерживаемый волонтерами группы Tix Project Group и выпускаемый под лицензией в стиле BSD. [40]
Itcl/IncrTcl
Itcl — это объектная система для Tcl, которая обычно называется [incr Tcl] (это способ увеличения в Tcl, аналогичный названию C++).
Tcllib
Tcllib — это набор скриптовых пакетов для Tcl, которые можно использовать без каких-либо этапов компиляции.
Тклиб
Tklib — это набор служебных модулей для Tk, дополняющий Tcllib.
тДОМ
tDOM — это расширение Tcl для анализа XML, основанное на Expat. парсере
TclTLS
TclTLS — это расширение OpenSSL для Tcl.
ТклУДП
TclUDP [41] Расширение предоставляет простую библиотеку для поддержки сокетов протокола пользовательских датаграмм (UDP) в Tcl.
Базы данных
Tcl Database Connectivity (TDBC), часть Tcl 8.6, представляет собой общий интерфейс доступа к базе данных для сценариев Tcl. В настоящее время он поддерживает драйверы для доступа к базам данных MySQL , ODBC , PostgreSQL и SQLite . В будущем планируется еще больше. Доступ к базам данных также поддерживается через расширения для конкретных баз данных, которых имеется множество. [42]

См. также [ править ]

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

  1. ^ Перейти обратно: а б «Разработка ядра Tcl/Tk» . Tcl-разработчик Xchange . Проверено 1 ноября 2016 г.
  2. ^ «[TCLCORE] Tcl/Tk 8.6.14 ВЫПУЩЕНО» . 29 февраля 2024 г. Проверено 1 марта 2024 г.
  3. ^ «Условия лицензии Tcl/Tk» . Разработчик Tcl Xchange . Проверено 2 ноября 2016 г.
  4. ^ «Tcl Dev Kit – Компилятор» . Документы ActiveState . Проверено 2 ноября 2016 г.
  5. ^ Лердорф, Расмус (26 апреля 2007 г.). «PHP на гормонах - история презентации PHP Расмусом Лердорфом на конференции MySQL в Санта-Кларе, Калифорния» . Сеть разговоров . Проверено 11 декабря 2009 г.
  6. ^ «PowerShell и WPF: WTF» . Блог Windows PowerShell . Майкрософт. Архивировано из оригинала 25 декабря 2008 года . Проверено 3 апреля 2019 г.
  7. ^ «Скрипты TH1» . Ископаемое.
  8. ^ Кенни, Кевин (4 июля 2005 г.). «Re: Сертификация TCL» . Группа новостей : comp.lang.tcl .
  9. ^ "Язык" . Разработчик Tcl Xchange . Проверено 2 ноября 2016 г.
  10. ^ Основы Tcl , Глава 1 практического программирования на Tcl и Tk , ISBN   0-13-038560-3
  11. ^ Перейти обратно: а б Из внутренней части Tcl и Tk Toolkit , ISBN   0-201-63337-X
  12. ^ «Использование Tcl/Tk» . Разработчик Tcl Xchange . Проверено 2 ноября 2016 г.
  13. ^ «Руководство по настройке сценариев Cisco IOS с использованием TCL» . Поддержка Cisco . Проверено 2 ноября 2016 г.
  14. ^ Джон Оустерхаут. «История ТКЛ» . Персональные страницы . Стэндфордский Университет . Проверено 9 августа 2011 г.
  15. ^ «История ТКЛ» . Разработчик Tcl Xchange . Проверено 2 ноября 2016 г.
  16. ^ «ЭДА» . wiki.tcl-lang.org . Проверено 27 апреля 2022 г.
  17. ^ «Джон К. Оустерхаут – обладатель награды» . Награды АКМ . Проверено 4 ноября 2016 г.
  18. ^ Из Wiki Tcler's Tcl против TCL
  19. ^ «Объявление о выпуске Tcl/Tk 8.0» . Разработчик Tcl Xchange . Проверено 1 июля 2014 г.
  20. ^ «Объявление о выпуске Tcl/Tk 8.1» . Разработчик Tcl Xchange . Проверено 1 июля 2014 г.
  21. ^ Перейти обратно: а б «Новые возможности регулярных выражений в Tcl 8.1» . Разработчик Tcl Xchange . Проверено 2 ноября 2016 г.
  22. ^ «Объявление о выпуске Tcl/Tk 8.2» . Разработчик Tcl Xchange . 18 августа 1999 г. Проверено 1 июля 2014 г.
  23. ^ «Объявление о выпуске Tcl/Tk 8.4» . Разработчик Tcl Xchange . 01.06.2013 . Проверено 1 июля 2014 г.
  24. ^ «СОВЕТ № 237: Целые числа произвольной точности для Tcl» . Разработчик Tcl Xchange . Проверено 1 ноября 2016 г.
  25. ^ «СОВЕТ № 194: СОВЕТ № 194: Процедуры как значения через apply» . Tcl-разработчик Xchange . Проверено 1 ноября 2016 г.
  26. ^ «Объявление о выпуске Tcl/Tk 8.5» . Разработчик Tcl Xchange . 18 сентября 2013 г. Проверено 1 июля 2014 г.
  27. ^ Перейти обратно: а б «Объявление о выпуске Tcl/Tk 8.6» . Tcl-разработчик Xchange . 20 сентября 2013 г. Проверено 1 июля 2014 г.
  28. ^ «Конференции Tcl/Tk» . Tcl-разработчик Xchange . Проверено 1 ноября 2016 г.
  29. ^ Перейти обратно: а б с «СОВЕТ № 257: Объектная ориентация для Tcl» . Разработчик Tcl Xchange . Проверено 1 ноября 2016 г.
  30. ^ «Загрузить исходники Tcl/Tk» . Разработчик Tcl Xchange . Проверено 1 ноября 2016 г.
  31. ^ «Безопасный Tcl» . Разработчик Tcl Xchange . Проверено 1 ноября 2016 г.
  32. ^ Браун, Лори (18–20 сентября 1996 г.). «Безопасность мобильного кода» . В Боссомайере, Терри; Чабб, Люси (ред.). Материалы 2-й совместной конференции AUUG '96 и Азиатско-Тихоокеанской WWW '96 . Мельбурн, Австралия. п. 50 . Проверено 22 марта 2011 г.
  33. ^ Уэлч, Брент Б.; Джонс, Кен; Хоббс, Джеффри (2003). Практическое программирование на Tcl и Tk . Том. 1 (4-е изд.). Прентис Холл PTR. п. 291. ИСБН  0-13-038560-3 .
  34. ^ «Страница руководства Tcl — Встроенные команды Tcl» . Разработчик Tcl Xchange . Проверено 14 июня 2014 г.
  35. ^ «Додекалог» . Вики Тклера . Проверено 14 июня 2014 г. (Также содержит более короткую «Восьмилоговую» версию правил.)
  36. ^ «Страница руководства по повышению уровня — Встроенные команды» . Разработчик Tcl Xchange . Проверено 14 июня 2016 г.
  37. ^ «Страница руководства upvar — Встроенные команды» . Разработчик Tcl Xchange . Проверено 14 июня 2016 г.
  38. ^ «Tcl C API» . tcl.tk. ​ Проверено 2 ноября 2016 г.
  39. ^ «Tile: улучшенный движок тем для Tk» . СоурсФордж . Проверено 7 августа 2016 г.
  40. ^ «Тикс-лицензия» . СоурсФордж . Проверено 7 августа 2012 г.
  41. ^ «ТклУДП» . Tcl'ers Wiki . Проверено 7 августа 2012 г.
  42. ^ «ТДБК» . Tcl'ers Wiki . Проверено 7 августа 2012 г.

Дальнейшее чтение [ править ]

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 735FE4171D2691BC1BD08E8CD5B29413__1717228440
URL1:https://en.wikipedia.org/wiki/Tcl
Заголовок, (Title) документа по адресу, URL1:
Tcl - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)