Вопросы по языку TCL
Модератор: Olej
Вопросы по языку TCL
Здравствуйте уважаемые форумчане
интересен язык TCL на линукс:
1) интересно в какой среде можно программировать, какой софт необходимо установить (под виндой был WISH, а тут не знаю)
2) возможно ли с помощью программ написанных на языке TCL обращаться к низкоуровневому железу, например, UART, LPT, USB?
3) возможно ли использовать в TCL вставки из языка си?
4) порекомендуйте хорошую учебную литературу по данному языку
заранее благодарен за ответы
интересен язык TCL на линукс:
1) интересно в какой среде можно программировать, какой софт необходимо установить (под виндой был WISH, а тут не знаю)
2) возможно ли с помощью программ написанных на языке TCL обращаться к низкоуровневому железу, например, UART, LPT, USB?
3) возможно ли использовать в TCL вставки из языка си?
4) порекомендуйте хорошую учебную литературу по данному языку
заранее благодарен за ответы
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопросы по языку TCL
1.Andrey писал(а): интересен язык TCL на линукс:
1) интересно в какой среде можно программировать, какой софт необходимо установить (под виндой был WISH, а тут не знаю)
2) возможно ли с помощью программ написанных на языке TCL обращаться к низкоуровневому железу, например, UART, LPT, USB?
3) возможно ли использовать в TCL вставки из языка си?
4) порекомендуйте хорошую учебную литературу по данному языку
Код: Выделить всё
olej@nvidia ~ $ which wish
/usr/bin/wish
Код: Выделить всё
olej@nvidia ~ $ man wish
wish(1) Tk Applications wish(1)
...
Код: Выделить всё
olej@nvidia ~ $ which tclsh
/usr/bin/tclsh
olej@nvidia ~ $ man tclsh
...
olej@nvidia ~ $ ls -l /usr/bin/tclsh*
lrwxrwxrwx 1 root root 8 марта 6 2014 /usr/bin/tclsh -> tclsh8.6
-rwxr-xr-x 1 root root 5460 янв. 1 2014 /usr/bin/tclsh8.5
-rwxr-xr-x 1 root root 5468 янв. 3 2014 /usr/bin/tclsh8.6
Код: Выделить всё
olej@nvidia ~ $ apt search tcl* | grep ' tcl'
i A tcl - Tool Command Language (default version) -
p tcl-combat - CORBA scripting with Tcl
i tcl-dev - Tool Command Language (default version) -
p tcl-doc - Tool Command Language (default version) -
p tcl-fitstcl - Tcl interface to FITS files
p tcl-funtools - Minimal buy-in FITS library (Tcl interface
p tcl-memchan - Tcl extension for in-memory channels - run
p tcl-memchan-dev - Tcl extension for in-memory channels - dev
p tcl-signal - "Signal" extension for Tcl
p tcl-snack - Sound extension to Tcl/Tk and Python/Tkint
p tcl-snack-dev - Sound extension to Tcl/Tk and Python/Tkint
p tcl-snack-doc - Sound extension to Tcl/Tk and Python/Tkint
p tcl-sugar - Lisp-like macro system for Tcl
p tcl-tclex - Lexical analyzer generator for Tcl
p tcl-tclreadline - расширение Tcl/Tk, добавляющее поддержку G
p tcl-thread - Tcl extension implementing script level ac
p tcl-tls - TLS OpenSSL extension to Tcl
p tcl-trf - Tcl data transformations - runtime library
p tcl-trf-dev - Tcl data transformations - development fil
p tcl-trf-doc - Tcl data transformations - development fil
p tcl-udp - UDP sockets for Tcl
p tcl-vfs - Exposes Tcl's virtual filesystem C API to
p tcl-vtk - Tcl bindings for VTK
p tcl-vtk6 - Tcl bindings for VTK
p tcl-xpa - Seamless communication between Unix progra
p tcl8.4 - Tcl (the Tool Command Language) v8.4 - she
p tcl8.4-dev - Tcl (the Tool Command Language) v8.4 - dev
p tcl8.4-doc - Tcl (the Tool Command Language) v8.4 - man
i tcl8.5 - Tcl (the Tool Command Language) v8.5 - she
p tcl8.5-dev - Tcl (the Tool Command Language) v8.5 - dev
p tcl8.5-doc - Tcl (Tool Command Language) v8.5 — man-стр
i tcl8.5-kwwidgets - Cross-Platform GUI Toolkit - TCL/TK
i A tcl8.6 - Tcl (the Tool Command Language) v8.6 - she
i A tcl8.6-dev - Tcl (the Tool Command Language) v8.6 - dev
p tcl8.6-doc - Tcl (the Tool Command Language) v8.6 - man
p tcl8.6-tdbc - Tcl Database Connectivity
p tcl8.6-tdbc-mysql - Tcl Database Connectivity
p tcl8.6-tdbc-odbc - ODBC driver for the Tcl Database Connectiv
p tcl8.6-tdbc-postgres - Tcl Database Connectivity
p tcl8.6-tdbc-sqlite3 - Tcl Database Connectivity
p tclcl - tcl2c++ and otcldoc program from tclcl
p tclcl-dbg - debug symbols of TclCL: both tclcl and lib
p tclcl-dev - transitional dummy package to libtclcl-dev
p tclcurl - Tcl bindings to libcurl
v tcldoc -
v tclex -
p tclgeoip - Tcl extension implementing GeoIP lookup fu
p tcllib - Standard Tcl Library
p tclodbc - ODBC extension for Tcl
v tclreadline -
v tclsh -
p tclspice - Библиотека NGspice для Tcl
v tclthread -
v tcltls -
v tclvfs -
v tclx -
v tclx-doc -
p tclx8.4 - Extended Tcl (TclX) - shared library
p tclx8.4-dev - Extended Tcl (TclX) - development package
p tclx8.4-doc - Расширенный Tcl (TclX) - справочные страни
p tclxapian - Xapian search engine interface for Tcl
p tclxml - Tcl library for XML parsing
p tclxml-dev - Tcl library for XML parsing - development
+ специфические команды управления типа stty...
С USB всё гораздо сложнее разнообразнее - здесь всё зависит от устройства и как с ним работает Linux.
По п.3 и п.4 кое-что можете почитать здесь: Tcl / Tk
Re: Вопрос по языку TCL
спасибо огромное что уделили свое время моим вопросам,
я так понял все эти команды опрашивают состояние установки TCL, а что нибудь как например в си нет?
ну там в блокноте набросал программку, (в си вызвал компилятор, линкер, отладчик, расставил брек поинты) запустил интерпритатор по шагам или как можно? или тут последовательно нужно писать в консоль и смотреть выполнение? на счет общения с периферией, в RISC ядрах я мог отслеживать железные прерывания, тонко настраивать устройство как я хочу, а тут нужно соблюдать определенную структуру записи в файл или как?
при вызове apt search tcl* | grep ' tcl' у меня пишет :
WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.
чего мне не хватает?
я так понял все эти команды опрашивают состояние установки TCL, а что нибудь как например в си нет?
ну там в блокноте набросал программку, (в си вызвал компилятор, линкер, отладчик, расставил брек поинты) запустил интерпритатор по шагам или как можно? или тут последовательно нужно писать в консоль и смотреть выполнение? на счет общения с периферией, в RISC ядрах я мог отслеживать железные прерывания, тонко настраивать устройство как я хочу, а тут нужно соблюдать определенную структуру записи в файл или как?
при вызове apt search tcl* | grep ' tcl' у меня пишет :
WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.
чего мне не хватает?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопрос по языку TCL
Здесь всё точно так же (по крайней мере как с интерпретирующими языками, например Python или Ruby): набираете код в файл, и запускаете:Andrey писал(а): я так понял все эти команды опрашивают состояние установки TCL, а что нибудь как например в си нет?
ну там в блокноте набросал программку, (в си вызвал компилятор, линкер, отладчик, расставил брек поинты) запустил интерпритатор по шагам или как можно? или тут последовательно нужно писать в консоль и смотреть выполнение?
Код: Выделить всё
olej@nvidia ~/2016_WORK/in.WORK/Tcl.Tk/1 $ wish calculator.tcl
^C
Мне трудно понять по этой фразе что вы хотите ... но, конечно, Tcl/Tk заточен не для какой-то тонкой работы с нестандартной периферией.Andrey писал(а): на счет общения с периферией, в RISC ядрах я мог отслеживать железные прерывания, тонко настраивать устройство как я хочу, а тут нужно соблюдать определенную структуру записи в файл или как?
Но со стандартной, с которой работает сама система Linux, вы можете работать пользуясь как-раз средствами операционной системы (только нужно с ними хорошо разобраться: /dev, /sys, /proc, udev и т.д.).
Вам не хватает указать дистрибутив Linux, в котором вы это делаетеAndrey писал(а): при вызове apt search tcl* | grep ' tcl' у меня пишет :
WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.
чего мне не хватает?
(если вы это делаете Linux)
- Вложения
-
- calculator.tcl
- (1.07 КБ) 235 скачиваний
Re: Вопрос по языку TCL
спасибо за наглядный пример с калькулятором буду изучать, мне казалось что потребуется специализированная IDE типа KEIL или еще что-нибудь, а теперь все ясно буду пробовать;
я линуксом пользуюсь, но честно говоря очень многого не знаю.. так что вот так...
у меня стоит XUBUNTU как мне правильно указать дистрибутив? если не сложно...
я линуксом пользуюсь, но честно говоря очень многого не знаю.. так что вот так...
у меня стоит XUBUNTU как мне правильно указать дистрибутив? если не сложно...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопрос по языку TCL
Если у вас Xubuntu, то там их вариант apt просто не имеет такой команды как search :Andrey писал(а):у меня стоит XUBUNTU как мне правильно указать дистрибутив? если не сложно...
Код: Выделить всё
olej@nvidia ~ $ apt --help
apt
Usage: apt command [options]
apt help command [options]
Commands:
autoclean - Erase old downloaded archive files
autoremove - Remove automatically all unused packages
build - Build binary or source packages from sources
build-dep - Configure build-dependencies for source packages
changelog - View a package's changelog
check - Verify that there are no broken dependencies
clean - Erase downloaded archive files
contains - List packages containing a file
content - List files contained in a package
deb - Install a .deb package
depends - Show raw dependency information for a package
dist-upgrade - Perform an upgrade, possibly installing and removing packages
download - Download the .deb file for a package
dselect-upgrade - Follow dselect selections
held - List all held packages
help - Show help for a command
hold - Hold a package
install - Install/upgrade packages
policy - Show policy settings
purge - Remove packages and their configuration files
rdepends - Show reverse dependency information for a package
reinstall - Download and (possibly) reinstall a currently installed package
remove - Remove packages
search - Search for a package by name and/or expression
show - Display detailed information about a package
source - Download source archives
sources - Edit /etc/apt/sources.list with nano
unhold - Unhold a package
update - Download lists of new/upgradable packages
upgrade - Perform a safe upgrade
version - Show the installed version of a package
This apt has Super Cow Powers
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопросы по языку TCL
На форуме возник снова интерес к языку Tcl: язык Tcl: установка и настройка.Andrey писал(а): интересен язык TCL на линукс:
1) интересно в какой среде можно программировать, какой софт необходимо установить (под виндой был WISH, а тут не знаю)
2) возможно ли с помощью программ написанных на языке TCL обращаться к низкоуровневому железу, например, UART, LPT, USB?
3) возможно ли использовать в TCL вставки из языка си?
4) порекомендуйте хорошую учебную литературу по данному языку
В связи с чем есть смысл обновить и поднять и эту тему.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопрос по языку TCL
Чтоб не плодить множество тем разбросанных по форуму, все вопросы кода Tcl/Tk помещаю сюда (думаю его не будет много).Olej писал(а): В связи с чем есть смысл обновить и поднять и эту тему.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопрос по языку TCL
Код вычисления чисел Фибоначчи, как пример сравнения быстродействия, добавлен в новый текст производительность языков программирования:Olej писал(а): Чтоб не плодить множество тем разбросанных по форуму, все вопросы кода Tcl/Tk помещаю сюда (думаю его не будет много).
Код: Выделить всё
proc tcl::mathfunc::fib { n } {
if { $n < 2 } {
return 1
} else {
return [ expr { fib( $n - 1 ) + fib( $n - 2 ) } ]
}
}
puts [ tcl::mathfunc::fib [ lindex $argv 0 ] ]
Код: Выделить всё
$ time tclsh fibo.tcl 30
1346269
real 0m1.426s
user 0m1.246s
sys 0m0.006s
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Вопрос по языку TCL
Задача такая же, как показано было в Swift под Linux:Olej писал(а):Чтоб не плодить множество тем разбросанных по форуму, все вопросы кода Tcl/Tk помещаю сюда (думаю его не будет много).
Контроль соответствия формата ввода (т.е. отсутствия ошибок ввода) в Tcl проще всего сделать регулярными выражениями. С отладочным выводом того что происходит это выглядит так:- определение координат 2D точек, составных [X,Y] из 2-х Double значений
- ввод покоординатно таких чисел с терминала
- с контролем ошибок ввода: <2 или >2 чисел введено, не числовое значение, отработку конца ввода EOF=^D и т.д.
Код: Выделить всё
set pattern {^[\s\t]*[-+]?(\d+|\.\d+|\d+\.\d*)\s+(\d+|\.\d+|\d+\.\d*)\s*$}
while "1" {
puts "координаты в формате X Y : "
if { [ gets stdin line ] <= 0 } break
set x ""; set y ""; set match ""
puts stdout $line
set result [ regexp $pattern $line match x y ]
puts "Result: $result match:<$match> |$x|$y|"
if { $result != 1 } {
puts "ошибка ввода"
continue
}
}
puts "\rзавершение ввода"
Код: Выделить всё
[olej@dell Tcl]$ tclsh 2Din.tcl
координаты в формате X Y :
1 2
1 2
Result: 1 match:<1 2> |1|2|
координаты в формате X Y :
123
123
Result: 0 match:<> |||
ошибка ввода
координаты в формате X Y :
3 4
3 4
Result: 1 match:< 3 4> |3|4|
координаты в формате X Y :
34 5ф
34 5ф
Result: 0 match:<> |||
ошибка ввода
координаты в формате X Y :
1d2 34
1d2 34
Result: 0 match:<> |||
ошибка ввода
координаты в формате X Y :
1 22 333
1 22 333
Result: 0 match:<> |||
ошибка ввода
координаты в формате X Y :
.2 3.
.2 3.
Result: 1 match:< .2 3.> |.2|3.|
координаты в формате X Y :
12.34 56.78
12.34 56.78
Result: 1 match:< 12.34 56.78> |12.34|56.78|
координаты в формате X Y :
завершение ввода
- Вложения
-
- 2Din.tcl
- (471 байт) 101 скачивание
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя