TCL
Tcl| 패러다임 | 멀티패러다임: 이벤트 주도형, 기능형, 필수형, 객체 지향형 |
|---|---|
| 설계자 | 존 오스터허우트 |
| 개발자 | TCL 코어[1] 팀 |
| 처음 등장한 | 전 |
| 안정된 릴리스 | |
| 타이핑 분야 | 동적 타이핑으로 모든 것을 문자열로 취급할 수 있습니다. |
| 면허증. | BSD 스타일의[4] |
| 파일 이름 확장자 | .tcl, .tbc[5] |
| 웹 사이트 | www www |
| 주요 구현 | |
| 액티브 Tcl 안드로위시 | |
| 사투리 | |
| 짐, 이글 | |
| 영향을 받다 | |
| AWK, 리스프 | |
| 영향받은 | |
| PHP,[6] PowerShell,[7] Tea | |
Tcl('tickle' 또는[8] 이니셜리즘으로 발음)은 고도의 범용 해석 다이내믹 프로그래밍 언어입니다.그것은 매우 단순하지만 [9]강력한 것을 목표로 설계되었다.TCL은 변수 할당 및 프로시저 [10]정의와 같은 프로그래밍 구성도 포함하여 모든 것을 명령의 틀에 넣습니다.TCL은 객체 지향, 필수 및 기능 프로그래밍 또는 절차 스타일을 포함한 여러 프로그래밍 패러다임을 지원합니다.
일반적으로 C 애플리케이션에 [11]내장되어 신속한 프로토타이핑, 스크립트 형식의 애플리케이션, GUI 및 [12]테스트에 사용됩니다.TCL 인터프리터는 많은 운영 체제에서 사용할 수 있으므로 TCL 코드를 다양한 시스템에서 실행할 수 있습니다.Tcl은 매우 컴팩트한 언어이기 때문에 임베디드 시스템플랫폼에서 풀 폼과 기타 여러 작은 풋프린트 [13]버전으로 사용됩니다.
Tcl과 Tk 확장의 일반적인 조합은 Tcl/Tk라고 불리며, Tcl에서 기본적으로 Graphical User Interface(GUI; 그래피컬사용자 인터페이스)를 구축할 수 있습니다.Tcl/Tk는 표준 Python 설치에 Tkinter 형태로 포함되어 있습니다.
역사
TCL 프로그래밍 언어는 1988년 봄 John Ousterhout이 캘리포니아 [14][15]버클리 대학에서 일하던 중 만들었습니다.저자에 의하면, 원래는 「실망으로부터 태어난」[11]프로그래머가, 전자 설계 자동화(EDA) Magic 애플리케이션에 짜넣기 위한 독자적인 언어를 고안해 낸 것으로, John은 프로페셔널에 [16]초점을 맞추고 있었습니다.나중에 Tcl은 스스로 인정을 받았다.Ousterhout은 1997년에 Tcl/[17]Tk로 ACM Software System Award를 수상했습니다.
이 이름은 원래 도구 명령어에서 유래했지만 일반적으로 TCL이 [18]아닌 TCL로 표기됩니다.
| 날짜. | 이벤트 |
|---|---|
| 1990년 1월 | TCL은 버클리(Winter USENIX)를 넘어 발표했다. |
| 1990년 6월 | 발표 예정 (Summer USENIX). |
| 1991년 1월 | TK(겨울 USENIX)의 첫 발표. |
| 1993년 6월 | 첫 번째 Tcl/Tk 회의(버클리).[표] 지오메트리 매니저([grid]의 전신), [incr Tcl], TclDP 및 Groupkit가 발표되었습니다. |
| 1997년 8월 | TCL 8.0은 바이트 코드 [19]컴파일러를 도입했습니다. |
| 1999년 4월 | TCL 8.1은 완전한[20] Unicode 지원과 고도의 정규 [21]표현을 도입했습니다. |
| 1999년 8월 | TCL 8.2에서는 TCL Extension Architecture(TEA)[22] 도입 |
| 2000년 8월 | TCL 코어 팀이 결성되어 TCL은 보다 커뮤니티 지향적인 개발 [1]모델로 전환되었습니다. |
| 2002년 9월 | 제9회 Tcl/Tk 회의(밴쿠버).Starkit 패키징 시스템 발표TCL [23]8.4.0 출시 |
| 2007년 12월 | TCL 8.5는 새로운 데이터 유형, 새로운 확장 저장소, bignums,[24][25][26] lamdas를 추가했습니다. |
| 2012년 12월 | Tcl 8.6은 내장된 동적 객체 시스템, TclOO 및 스택리스 [27]평가를 추가했습니다. |
TCL 회의 및 워크샵은 미국과 [28]유럽에서 개최되고 있습니다.
특징들
TCL의 기능은 다음과 같습니다.
- 언어 구조를 포함한 모든 작업은 명령어입니다.이것들은 프리픽스 표기법으로 쓰여져 있습니다.
- 명령어는 일반적으로 변수 개수의 인수를 받아들입니다(바리안트).
- 모든 것을 동적으로 재정의하고 재정의할 수 있습니다.실제로 키워드가 없기 때문에 제어 구조도 추가 또는 변경할 수 있지만 이는 권장되지 않습니다.
- 소스 코드를 포함한 모든 데이터 유형을 문자열로 조작할 수 있습니다.내부적으로 변수에는 정수 및 이중과 같은 유형이 있지만 변환은 완전히 자동입니다.
- 변수는 선언되지 않고 할당됩니다.정의되지 않은 변수를 사용하면 오류가 발생합니다.
- 메타 클래스, 필터, 믹스인 [29]등의 고급 기능을 포함한 완전히 동적인 클래스 기반 객체 시스템 TclOO.
- 소켓 및 파일에 대한 이벤트 기반 인터페이스.시간 기반 이벤트 및 사용자 정의 이벤트도 가능합니다.
- 가변 가시성은 기본적으로 어휘(정적) 범위로 제한됩니다만,
uplevel그리고.upvarproc가 주변 함수의 스코프와 상호 작용할 수 있도록 합니다. - TCL 자체에서 정의된 모든 명령어는 잘못된 사용 시 오류 메시지를 생성합니다.
- C, C++, Java, Python 및 Tcl을 통한 확장성.
- 바이트 코드를 사용한 통역 언어
- 1999년에 처음 출시된 Unicode 풀 지원(초기 3.1, 정기적으로 업데이트)
- 정규 표현[21]
- 크로스 플랫폼: Windows API, Unix, Linux, Macintosh 등
- 윈도잉(GUI) 인터페이스 Tk와의 긴밀한 크로스 플랫폼 통합
- 복수의 전달 메커니즘이 존재합니다.
세이프 TCL
Safe-Tcl은 TCL 스크립트가 호스팅 머신이나 애플리케이션을 [31]손상시키지 않도록 기능이 제한된 TCL의 서브셋입니다.파일 시스템 액세스가 제한되고 임의 시스템 명령이 실행되지 않습니다.untrusted 스크립트에서 코드를 실행하고 있는 untrusted 인터프리터를 사용하는 듀얼인터프리터 모델을 사용합니다.이것은 이메일에 활성 메시지를 포함하도록 나다니엘 보렌스타인과 마셜 로즈가 디자인했습니다.Safe-Tcl은 어플리케이션/safe-tcl 및 multipart/enabled-mail이 지원되는 경우 이메일에 포함할 수 있습니다.이후 Safe-Tcl의 기능은 표준 Tcl/[32][33]Tk 릴리스의 일부로 통합되었습니다.
구문 및 기본 의미론
Tcl의 구문과 의미론은 Dodekalogue로 [35]알려진 12가지[34] 규칙에 의해 다루어집니다.
TCL 스크립트는 일련의 명령 호출로 구성됩니다.명령 호출은 공백으로 구분되고 줄 바꿈 또는 세미콜론으로 끝나는 단어 목록입니다.첫 번째 단어는 명령어 이름입니다.언어에 내장되어 있거나 사용 가능한 라이브러리에 있거나 스크립트 자체에 정의되어 있을 수 있습니다.다음 단어는 명령어의 인수 역할을 합니다.
commandName argument1 argument2 ... 인수N
다음 예제에서는 puts('put string'의 줄임말) 명령을 사용하여 호스트 콘솔에 텍스트 문자열을 표시합니다.
놓다 "안녕, 월드!" 그러면 문자열 "Hello, World!" 가 추가된 줄 바꿈 문자와 함께 표준 출력 장치로 전송됩니다.
변수 및 기타 명령어 결과를 문자열로 대체할 수 있습니다.이 예에서는 set 명령어와 expr 명령어를 사용하여 변수에 계산 결과를 저장합니다(TCL은 사용하지 않습니다).=puts를 사용하여 결과를 설명 텍스트와 함께 인쇄합니다.
# expr은 식 세트합 [expr 1+2+3+4+5]에 "1..5 숫자의 합은 $sum"이 표시되므로 텍스트 문자열을 평가합니다. 그#character는 코멘트를 도입합니다.코멘트는 인터프리터가 명령 이름을 예상하는 모든 위치에 표시될 수 있습니다.
# 중괄호를 사용하면 변수 치환은 expr set x 1 set sum [expr {$x + 2 + 3 + 4 + 5}]에 의해 실행됩니다.# $x는 expr에 파라미터를 전달하기 전에 대체되지 않습니다.# expr은 식을 평가하는 동안 $x를 1로 대체하지 않습니다.# ex는 "1 . 5는 $sum입니다."; #합계는 15 입니다.# 중괄호 없이 변수 치환은 정의 사이트(렉시컬 스코핑) set x 2 set op * set y 3 set res [expr $x$op$y]에서 발생합니다.# $x, $op 및 $y는 치환되며, 식은 "2 * 3은 $res입니다."; #6은 $res로 대체됩니다.이러한 예에서 볼 수 있듯이 언어에는 명령어라는1개의 기본 구성이 있습니다.견적 메커니즘 및 대체 규칙에 따라 각 명령어에 대한 인수가 처리되는 방법이 결정됩니다.
명령어 또는 인수를 해석하기 전에 특별한 치환이 발생합니다.줄의 마지막 문자(즉, 줄 바꿈 직전의 문자)가 백슬래시일 경우 줄 바꿈 직전의 공백 또는 탭이 공백으로 바뀝니다.이것에 의해, 판독자의 편의를 위해서, 소스코드의 긴 행을 다음의 행으로 감을 수 있는 행의 연속 메카니즘이 제공됩니다.
일반 인수 처리로 계속 진행되며 이중 따옴표로 시작하는 단어(")는, 다음의 2 진문자까지 확장됩니다.따라서 이러한 단어는 공백과 세미콜론을 포함할 수 있으며, 이러한 문자는 특별한 의미를 갖는 것으로 해석되지 않습니다(즉, 일반 텍스트 문자로 취급됩니다).여는 괄호로 시작하는 단어({)는 다음 닫는 컬리 기호까지 확장됩니다( ).}). 앞서 설명한 백슬래시-newline 삭제를 제외한 모든 형식의 치환은 생략됩니다.두 구성 중 하나로 묶이지 않은 단어는 맨 단어로 알려져 있습니다.
맨따옴표와 쌍따옴표로 둘러싸인 단어에서는 다음 세 가지 유형의 치환이 발생할 수 있습니다.
- 명령어 치환은 균형 잡힌 대괄호의 내용을 안에 포함된 스크립트를 평가한 결과로 대체합니다.예를들면,
[expr 1+2+3]는 포함된 표현(이 경우 6)을 평가한 결과로 대체됩니다. - 변수 치환은 달러 기호 앞에 있는 변수의 이름을 변수의 내용(또는 값)으로 바꿉니다.예를들면,
$foofoo라는 변수의 내용으로 대체됩니다.변수 이름은 다른 모호한 경우 후속 텍스트와 구분하기 위해 중괄호로 둘러싸일 수 있습니다(예:${foo}ing). - 백슬래시 치환은 백슬래시를 대체한 후 문자를 다른 문자로 바꿉니다.예를들면,
\n는 새로운 행으로 대체됩니다.
치환은 각 단어를 한 번의 스캔으로 왼쪽에서 오른쪽으로 진행됩니다.대체된 텍스트는 더 이상 대체되지 않도록 다시 스캔되지 않습니다.단, 치환은 한 단어로 몇 개라도 표시할 수 있습니다.
Tcl 8.5 이후로는 임의의 단어에 프레픽스를 붙일 수 있습니다.{*}명령어 호출을 작성하기 위해 해당 단어를 구성 서브워드로 분할합니다(와 유사).,@Lisp의 Quiquote 특징의 시퀀스).
이러한 규칙에 따라 명령어 결과는 다른 명령어에 대한 인수로 사용될 수 있습니다.Unix 명령 셸과는 달리 Tcl은 명시적으로 지시되지 않는 한 어떤 문자열도 재분석하지 않기 때문에 인터랙티브한 사용은 더욱 번거롭지만 스크립트로 작성된 사용은 더욱 쉽게 예측할 수 있습니다(예를 들어 파일 이름에 공백이 있으면 문제가 발생하지 않습니다).
단일 등호(=)는 언어에서 특별한 역할을 하지 않습니다.이중 등호(==)는 다음과 같은 표현 컨텍스트에서 사용되는 동등성 테스트입니다.expr명령 및 첫 번째 인수로if(두 명령어는 모두 표준 라이브러리의 일부입니다.라이브러리에 특별한 장소가 없기 때문에 필요에 따라 교환할 수 있습니다).
Tcl 명령어의 대부분은, 특히 표준 라이브러리에서, 바리에타치이며,proc(스크립트 형식의 명령어프로시저 컨스트럭터)를 사용하면 지정되지 않은 인수 및 catch-all 인수의 기본값을 정의하고 코드가 임의의 수의 인수를 처리할 수 있습니다.
Tcl은 정적으로 입력되지 않습니다.각 변수는 정수, 플로트, 문자열, 목록, 명령어 이름, 사전 또는 기타 값을 포함할 수 있습니다.값은 필요에 따라 다른 유형으로 재해석됩니다(통사적 제약 조건에 따릅니다).단, 값은 불변하며 값을 변경하는 것처럼 보이는 조작은 새로운 값을 반환할 뿐입니다.
기본 명령어
프로그램 실행 및 데이터 작업을 참조하는 가장 중요한 명령어는 다음과 같습니다.
set는 변수에 새 값을 씁니다(존재하지 않는 경우 변수를 삭제합니다).하나의 인수와 함께만 사용할 경우 지정된 변수의 값이 반환됩니다(이 경우 변수가 존재해야 합니다).proc는 새로운 명령어를 정의합니다.이 명령어를 실행하면 일련의 명령어로 기술된 소정의 TCL 스크립트가 실행됩니다.return를 사용하면, 즉시 발신자에게 제어를 되돌릴 수 있습니다.
일반적인 실행 제어 명령어는 다음과 같습니다.
if조건(첫 번째 인수)이 충족되면는 지정된 스크립트 본문(두 번째 인수)을 실행합니다.그 뒤에 다음부터 시작하는 추가 인수가 있을 수 있습니다.elseif대체 조건 및 신체 또는else상보 블록과 함께.while조건(첫 번째 인수)이 충족되는 한 지정된 스크립트 본문의 실행을 반복합니다.foreach는 제어 변수가 할당되어 있는 특정 본문을 하나씩 목록 요소를 실행합니다.for제어 변수, 조건(와 같은)을 초기화하기 위한 바로 가기while및 추가 "next repeating" 문(본문 실행 후 실행되는 명령어)
위의 루프 명령어는 다음 명령어로 추가로 제어할 수 있습니다.
breakbody 실행을 중단하고 looping 명령에서 돌아갑니다.continue는 본문 실행을 중단하지만 제어는 여전히 루프 명령어로 반환됩니다.위해서while다시 루프하는 것을 의미합니다.for그리고.foreach, 다음 반복을 선택합니다.return는 프로시저 경계에 도달할 때까지 프로시저 내의 어느 깊이에 관계없이 현재 본문의 실행을 중단하고 지정된 값을 발신자에게 반환합니다.
고급 명령어
expr는 인수를 다른 식 인터프리터에 전달하고 평가된 값을 반환합니다.같은 인터프리터가, 다음의 「조건부」식에도 사용되고 있는 것에 주의해 주세요.if및 looping 명령어.list는 모든 인수로 구성된 목록을 만듭니다.인수가 지정되지 않은 경우 빈 문자열을 만듭니다.그lindex명령어를 사용하여 원래 인수를 다시 지정할 수 있습니다.array는 배열 변수를 조작합니다.dict는 사전(8.5 이후)을 조작합니다.이 사전은 짝수의 요소가 포함된 목록으로, 각 2개의 요소가 키/값 쌍으로 해석됩니다.regexp는 정규 표현을 문자열과 대조합니다.regsub정규 표현 패턴 조회를 기반으로 치환을 수행합니다.uplevel는 명령어 스크립트를 스택 상의 현재 가장 안쪽 스코프 이외의 범위에서 실행할 수 있도록 하는 명령어입니다.upvar는 다른 스택프레임의 변수에 대한 링크를 만듭니다.namespace그럼 명령 및 변수의 개별 컨텍스트를 작성, 액세스 및 파기할 수 있습니다.apply는 어나니머스 기능을 적용합니다(8.5 이후).coroutine,yield,그리고.yieldto8.6 이후 코루틴에서 값을 생성하고 생성합니다.try에러 및 예외를 트랩 및 처리할 수 있습니다.catch를 사용하면 예외적인 리턴을 트랩할 수 있습니다.zlib는 Zlib 라이브러리의 압축 및 체크섬 기능에 대한 접근을 제공합니다(8.6 이후).
업레벨
uplevel명령어 스크립트를 스택의 현재 가장 안쪽 스코프 이외의 범위에서 실행할 수 있습니다.명령어 스크립트 자체가 uplevel 명령어를 사용하는 프로시저를 호출할 수 있기 때문에 콜스택을 콜트리로 [36]변환하는 최종 효과가 있습니다.
원래는 TCL 프로시저가 내장 명령어(for, if, while 등)를 재실장하고 로컬 변수를 조작할 수 있도록 하기 위해 구현되었습니다.예를 들어 다음 Tcl 스크립트는 for 명령어를 다시 구현한 것입니다(예외 처리 생략).
{initCmd testExpr advancedCmd bodyScript} {uplevel 1 $initCmd set testCmd [list expr $testCmd]} {uplevel 1 $bodyScript uplevel 1 $adanceCmd }}에 대한 proc업바
upvar에, 현재의 프로시저내의 1개 또는 복수의 로컬 변수를 둘러싸는 프로시저 콜의 변수 또는 글로벌 변수를 참조하도록 설정합니다.upvar 명령어를 사용하면 이름별 콜 프로시저 호출 구현이 간소화되며 TCL [37]프로시저로서 새로운 제어구조를 쉽게 구축할 수 있습니다.
기본 제공과 같은 기능을 하는 decr 명령어incr변수 값을 추가하지 않고 변수에서 값을 빼는 것을 제외합니다.
proc decr {varName {decrement 1)} {upvar 1 $varName var incr var [expr {-$decrement}}객체 지향
Tcl 8.6은 2012년에 [29]내장된 동적 객체 시스템인 TclOO를 추가했습니다.다음과 같은 기능이 있습니다.
- 클래스 베이스 오브젝트 시스템이것은 대부분의 프로그래머들이 OO에게 기대하는 것입니다.
- 오브젝트 단위의 커스터마이즈와 클래스의 동적 재정의가 가능하게 됩니다.
- 메타클래스
- 필터
- 믹스인
- 메서드를 커스텀 방식으로 구현하기 위한 시스템.그러면 메서드 구현의 현저한 다른 방법을 원하는 패키지 작성자가 상당히 간단하게 구현할 수 있습니다.
o:class create fruits { method eat { puts " superclass fruit create banana { superclass fruit constructor {} my variable flished 0 } my variable flished 1 puts now } my flished } my flished? 식용? {} { my variable cliped return $down } method { ![ my evood ]의 경우 {}을(를) 드십시오]} { my peel } next } set b [새로 만들기] $b eat → "가죽을 벗기기" 및 "먹기!" 과일 파괴 $b eat → 오류 "command"Tcl은 [29]2012년까지 객체 지향(OO) 구문이 없었기 때문에 객체 지향 프로그래밍을 가능하게 하는 다양한 확장 패키지가 등장했습니다.이들은 기존 TCL 소스 코드에 널리 분포되어 있습니다.일반적인 확장자는 다음과 같습니다.
TclOO는 강력한 객체 지향 시스템을 구축하기 위해 추가되었을 뿐만 아니라 확장 패키지가 이를 기반으로 객체 지향 추상화를 구축할 수 있도록 하기 위해 추가되었습니다.TclOO 출시 후 Tcl을 기반으로 [27]사용하도록 incr Tcl이 업데이트되었습니다.
웹 어플리케이션 개발
Tcl Web Server는 HTTP 프로토콜 서버의 순수 TCL 구현입니다.바닐라 Tcl 인터프리터 위에 스크립트로 실행됩니다.
Apache Ribett은 개발자가 Tcl을 동적 웹 응용 프로그램을 만들기 위한 스크립트 언어로 사용할 수 있도록 하는 Apache HTTP Server용 오픈 소스 프로그래밍 시스템입니다.리벳은 PHP, ASP 및 JSP와 유사합니다. 리벳은 주로 Damon Courtney, David Welton, Massimo Manghi, Harald Oehlmann 및 Karl Lehenbauer에 의해 개발되었습니다.Ribett은 데이터베이스 상호작용(Oracle, Postgre)과 같은 수많은 기능을 제공하는 수천 개의 공개 TCL 패키지 중 하나를 사용할 수 있습니다.SQL, MySQL, SQLite 등) 또는 GD 그래픽스 라이브러리와 같은 일반적인 응용 프로그램에 대한 인터페이스를 제공합니다.
다른 언어와의 인터페이스
TCL은 네이티브로 C언어와 [38]인터페이스합니다.이는 원래 C로 기술된 명령어 및 언어 내의 모든 명령어(키워드일 가능성이 있는 것을 포함)에 구문 프런트엔드를 제공하기 위한 프레임워크로 작성되었기 때문입니다.if또는while)은, 다음과 같이 실장됩니다.각 명령어 실장 함수는 (이미 대체된) 인수를 설명하는 값의 배열을 명령어에 전달하며, 이러한 값은 적합하다고 판단되는 대로 자유롭게 해석할 수 있습니다.
디지털 로직 시뮬레이터에는 Verilog, VHDL 및 SystemVerilog 하드웨어 언어를 시뮬레이션하기 위한 TCL 스크립팅 인터페이스가 포함되어 있는 경우가 많습니다.
툴(SWIG, Ffidl 등)은 임의의 C 함수와 Tcl 런타임에 접속하기 위해 필요한 코드를 자동으로 생성하기 위해 존재하며, Critcl은 그 반대로 Tcl 스크립트 내에 임의의 C 코드를 삽입하여 런타임에 DLL로 컴파일할 수 있습니다.
확장 패키지
Tcl 언어는 확장 패키지에 항상 허용되며 GUI, 터미널 기반 애플리케이션 자동화, 데이터베이스 액세스 등의 추가 기능을 제공합니다.일반적으로 사용되는 내선번호는 다음과 같습니다.
- Tk
- 가장 인기 있는 Tcl 확장 기능은 다양한 운영체제용 그래픽 사용자 인터페이스 라이브러리를 제공하는 Tk 툴킷입니다.각 GUI는 1개 이상의 프레임으로 구성됩니다.각 프레임에는 레이아웃 관리자가 있습니다.
- 기대하다
- 기타 매우 인기 있는 TCL 확장의 1개는 Expect 확장입니다.Expect와 TCL의 초기 긴밀한 관계는 Unix 테스트 등 다용도 분야에서 Tcl이 인기를 끄는 데 크게 기여하고 있습니다.Expect는 telnet, ssh 및 시리얼 세션을 매우 성공적으로 자동화하여 많은 반복 작업(예: 이전에는 인터랙티브 전용 애플리케이션 스크립팅)을 수행했습니다.Tcl은 Expect를 운영할 수 있는 유일한 방법이었기 때문에 TCL은 이러한 업계에서 큰 인기를 끌게 되었습니다.
- 타일/Tk
- 타일/Ttk는[39] 운영 체제의 API 호출을 통해 Tk에 있는 대부분의 위젯을 진정한 플랫폼 네이티브 변형으로 대체할 수 있는 스타일 및 주제 위젯 모음입니다.이 방법에서는 Windows XP, Windows Classic, Qt(X11 KDE 환경 라이브러리에 연결) 및 Aqua(Mac OS X)에 대해 설명합니다.이미지 픽스맵을 보완한 위젯 정의를 사용하여 이러한 콜 없이 테마를 구성할 수도 있습니다.이렇게 만들어진 테마는 Classic Tk, Step, Alt/Revitalized, Plastik 및 Keramik입니다.Tcl 8.4에서는 이 패키지는 타일이라고 불리며, Tcl 8.5에서는 Tk(Ttk)의 코어 디스트리뷰션으로 접혀 있습니다.
- 틱스
- Tix(Tk Interface eXtension)는 Tcl/Tk 및 Python 애플리케이션의 기능을 확장하는 사용자 인터페이스 구성 요소 세트입니다.이 패키지는 Tix 프로젝트 그룹의 자원봉사자에 의해 유지 관리되며 BSD 스타일의 [40]라이선스로 출시됩니다.
- Itcl/IncrTcl
- Itcl은 Tcl의 객체 시스템이며, 일반적으로 [incr Tcl](C++라는 이름과 유사한 방식으로 Tcl에서 증가하는 방법)으로 명명됩니다.
- Tclib
- Tclib는 컴파일 절차 없이 사용할 수 있는 Tcl용 스크립트 패키지 세트입니다.
- 트크립
- Tklib는 Tk용 유틸리티 모듈 모음으로 Tclib와 함께 제공됩니다.
- 토도
- tDOM은 Expat 파서를 기반으로 XML을 해석하기 위한 Tcl 확장입니다.
- TclTLS
- TclTLS는 TCL에 대한 OpenSSL 확장입니다.
- TCLUDP
- TclUDP 확장은 Tcl에서 User Datagram Protocol(UDP) 소켓을 지원하는 단순한 라이브러리를 제공합니다.
- 데이터베이스
- Tcl 8.6의 일부인 Tcl Database Connectivity(TDBC)는 TCL 스크립트의 공통 데이터베이스 액세스인터페이스입니다현재 MySQL, ODBC, Postgre에 액세스하기 위한 드라이버를 지원합니다.SQL 및 SQLite 데이터베이스.미래를 위해 더 많은 것이 계획되어 있다.데이터베이스에 대한 액세스는 데이터베이스 고유의 확장을 통해서도 지원되며, 그 중 많은 확장을 사용할 [42]수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b "Tcl/Tk Core Development". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ "Tcl / Tk 8.6.12 RELEASED". 5 November 2021. Retrieved 16 December 2021.
- ^ https://www.tcl.tk/software/tcltk/8.6.html; 검색: 2021년 12월 16일.
- ^ "Tcl/Tk License Terms". Tcl Developer Xchange. Retrieved 2016-11-02.
- ^ "Tcl Dev Kit – Compiler". ActiveState Docs. Retrieved 2016-11-02.
- ^ Lerdorf, Rasmus (2007-04-26). "PHP on Hormones – history of PHP presentation by Rasmus Lerdorf given at the MySQL Conference in Santa Clara, California". The Conversations Network. Retrieved 2009-12-11.
- ^ "PowerShell and WPF: WTF". Windows PowerShell Blog. Microsoft. Archived from the original on December 25, 2008. Retrieved April 3, 2019.
- ^ Kenny, Kevin (4 July 2005). "Re: TCL certification". Newsgroup: comp.lang.tcl.
- ^ "Language". Tcl Developer Xchange. Retrieved 2016-11-02.
- ^ Tcl 기초, Tcl 및 Tk의 실용 프로그래밍 제1장, ISBN 0-13-038560-3
- ^ a b Tcl 및 Tk Toolkit 내부 플랩에서 ISBN 0-201-63337-X
- ^ "Uses for Tcl/Tk". Tcl Developer Xchange. Retrieved 2016-11-02.
- ^ "Cisco IOS Scripting with TCL Configuration Guide". Cisco Support. Retrieved 2016-11-02.
- ^ John Ousterhout. "History of Tcl". Personal pages. Stanford University. Retrieved 2011-08-09.
- ^ "History of Tcl". Tcl Developer Xchange. Retrieved 2016-11-02.
- ^ "EDA". wiki.tcl-lang.org. Retrieved 2022-04-27.
- ^ "John K Ousterhout – Award Winner". ACM Awards. Retrieved 2016-11-04.
- ^ Tcler의 Wiki TCL과 TCL
- ^ "Tcl/Tk 8.0 Release Announcement". Tcl Developer Xchange. Retrieved 2014-07-01.
- ^ "Tcl/Tk 8.1 Release Announcement". Tcl Developer Xchange. Retrieved 2014-07-01.
- ^ a b "New Regular Expression Features in Tcl 8.1". Tcl Developer Xchange. Retrieved 2016-11-02.
- ^ "Tcl/Tk 8.2 Release Announcement". Tcl Developer Xchange. 1999-08-18. Retrieved 2014-07-01.
- ^ "Tcl/Tk 8.4 Release Announcement". Tcl Developer Xchange. 2013-06-01. Retrieved 2014-07-01.
- ^ "TIP #237: Arbitrary-Precision Integers for Tcl". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ "TIP #194: TIP #194: Procedures as Values via apply". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ "Tcl/Tk 8.5 Release Announcement". Tcl Developer Xchange. 2013-09-18. Retrieved 2014-07-01.
- ^ a b "Tcl/Tk 8.6 Release Announcement". Tcl Developer Xchange. 2013-09-20. Retrieved 2014-07-01.
- ^ "Tcl/Tk Conferences". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ a b c "TIP #257: Object Orientation for Tcl". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ "Download Tcl/Tk Sources". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ "Safe Tcl". Tcl Developer Xchange. Retrieved 2016-11-01.
- ^ Brown, Lawrie (September 18–20, 1996). "Mobile Code Security". In Bossomaier, Terry; Chubb, Lucy (eds.). Proceedings, 2nd Joint Conference, AUUG '96 and Asia-Pacific WWW '96. Melbourne, Australia. p. 50. Retrieved 2011-03-22.
- ^ Welch, Brent B.; Jones, Ken; Hobbs, Jeffrey (2003). Practical programming in Tcl and Tk. Vol. 1 (4th ed.). Prentice Hall PTR. p. 291. ISBN 0-13-038560-3.
- ^ "Tcl manual page – Tcl Built-In Commands". Tcl Developer Xchange. Retrieved 2014-06-14.
- ^ "Dodekalogue". Tcler's Wiki. Retrieved 2014-06-14. (또한 규칙의 짧은 "Octalogue" 버전도 포함됩니다).
- ^ "uplevel manual page – Built-In Commands". Tcl Developer Xchange. Retrieved 2016-06-14.
- ^ "upvar manual page – Built-In Commands". Tcl Developer Xchange. Retrieved 2016-06-14.
- ^ "Tcl C API". tcl.tk. Retrieved 2016-11-02.
- ^ "Tile: an improved themeing engine for Tk". SourceForge. Retrieved August 7, 2016.
- ^ "Tix License". SourceForge. Retrieved August 7, 2012.
- ^ "TclUDP". Tcl'ers Wiki. Retrieved August 7, 2012.
- ^ "TDBC". Tcl'ers Wiki. Retrieved August 7, 2012.
추가 정보
- Ousterhout, John K.; Jones, Ken (2009). Tcl and the Tk Toolkit (2nd ed.). Addison Wesley. ISBN 978-0-321-33633-0. Retrieved 4 November 2012.
- Foster-Johnson, Eric (1997). Graphical Applications with Tcl & Tk (2nd ed.). New York, N.Y.: M&T Books. ISBN 1-55851-569-0. Retrieved 4 November 2012.
- 브렌트 BWelch, Tcl 및 Tk 실용 프로그래밍, 프렌티스 홀, 어퍼 새들 리버, 미국, ISBN 0-13-038560-3, 2003
- J Adrian Zimmer, Tcl/Tk for Programmers, IEEE Computer Society, John Wiley and Sons 배포, ISBN 0-8186-8515-8, 1998
- Mark Harrison and Michael McLennan, Effective Tcl/Tk 프로그래밍, Addison-Wesley, Reading, MA, USA, ISBN 0-201-63474-0, 1998
- Bert Wheeler, Tcl/Tk 8.5 Programming Cookbook, Packt Publishing, 영국 버밍엄, ISBN 1849512981, 2011
- Wojciech Kocjan, Piotr Beltowski Tcl 8.5 네트워크 프로그래밍, Packt Publishing, ISBN 1849510962, 2010
- Clif Flynt Tcl/Tk, 제3판: 개발자 가이드, ISBN 0123847176, 2012
- Ashok P. Nadkarni Tcl 프로그래밍 언어, ISBN 154867964X, 2017
외부 링크
- 공식 웹사이트

- TCL 소스, 메인 TCL 및 Tk 소스 코드 다운로드 웹사이트
- Tcler's Wiki
- TkDocs
- Tcl/Tk 한국어 교과서