**تي سي أل** هي اختصار لأداة التحكم باللغة ولكن أصبح الناس يقول لها تي سي أل لتسهيل الكلام تلفظ ككلمة (تكل)أو تلفظ **تي سي إل** هذه هي لغة برمجية متعددة الاستخدام أنشأها جون أوستورهوت. في الأصل «ولدت من الإحباط» وفقا للمؤلف، مع وضع المبرمجين الخاصة بها (نوعية رديئة) لغات يقصد به أن يكون جزءا لا يتجزأ من داخل التطبيقات التي سي إل حظيت بالقبول من تلقاء نفسها. التي سي إل يستخدم عادة للنماذج السريعة، التطبيقات النصية، وواجهة المستخدم الرسومية والاختبار.تس سي إل يستخدم لمنصات الأنظمة المطمورة، سواء في شكله الكامل أو في إصدارات سمول برينتر أخرى التي سي إل يستخدم أيضا في برمجة المدخل العمومي لأجهزة التوصيل.

التاريخ
-------

لغة البرمجة للتي سي إل أخترعت في ربيع سنة 1988 من قبل جون أوستورهوت عندما كان يعمل في جامعة كاليفورنيا،بيريكيلي.

في شهر 1 من سنة 1990 : أعلن التي سي أل في جامعة بيريكلي (شتاء مجموعة مستخدمي اليونيكس)

في شهر 6 من سنة 1990:توقع اعلان (صيف مستخدمي يونيكس)

في شهر 1 من سنة 1990 : أول اعلان للتي كي (شتاء مستخدمي يونيكس)

في شهر 6 من سنة 1993 : أول مؤتمر لتي كي وتي سي أل في بيريكلي.

في شهر 9 من سنة 2002: تاسع اجتماع لتي سي أل وتي كي في فانكوفر الإعلان عن نظام التغليف ستاركيت

مقالات تي سي أل عقدت في أمريكا وأوروبا

ملامح
-----

ملامح التي سي إل تضم:

* جميع العمليات هي اوامر بما في ذلك قواعد اللغة وهي مكتوبة في تدوين البادئة
* الأوامر هي بالعادة مبرمجة
* كل شيء يمكن ان يعمل إعادة تعريف ديناميكية وجاوز
* يمكن التلاعب بجميع أنواع البيانات مثل الآلات الوترية.بما في ذلك الكود
* جميع الاوامر تعرف بالتي سي إل ومن تلقاء نفسها تظهر رسائل خطأ في استخدام غير صحيح
* التي سي إل قابل للمد، بواسطة السي والسي بلص بلص والجافا والتي سي إل
* ترجمة اللغة بواسطة الباي كود
* دعم اليوني كود الكامل (3.1) ,أول ظهور لها في 1999
* برامج مستقلة: وين32، يونيكس، لينوكس، ماك إلى اخره
* اغلاق كامل مع نوافذ واجهة المستخدم الرسومية تي سي

التي سي إل لم تدعم من وجوه المنحى بناء الجملة قبل 8.6 (8.6 تزود ال نظام الاوه أو في جوهر التي سي إل إذا وظائف الاوه أو زودت بواسطة علب الامتداد. حتى الاوه أو المكتوب بنقاء علب.

أمثلة
-----

* عامل (في أسلوب البرمجة الوظيفية):

```
proc ! x {expr {$x<2? 1: $x\*[! [incr x -1]]}}

```

* حساب قائمة من الأرقام

باستعمال الدالة foreach:

```
set nombres {10 9 8 7 6 5 4 3 2 1}
set somme 0
foreach i $nombres { 
 set somme [expr {$somme + $i}]
}

```

أو أكثر إحكاما باستخدام الأمر join:

```
set somme [expr [join $nombres +]]

```

* استبدال الحروف في جدول باستعمال الأمر string:

```
set sequence "ACGTATTACGGTCCATGAACGAATTGGGATATCGACCATGATGGAATTCTG"
puts [string map {GA R TC Y GT K AC M GC S AT W} $sequence]

```

* تحميل صفحة HTML:

```
package require http
puts [http::data [http::geturl http://mini.net/tcl/540]]

```

* إعطاء الوقت عن طريق الخطاب الصوتي على أندرويد:

```
package require android
set android [android new]
set time [clock format [clock seconds] -format "%I %M %p on %A, %B %e %Y."]
android speak $time

```

كلمات محجوزة
------------

```
after exec list read tm
append exit llength refchan trace
apply expr lmap regexp trap
array fblocked load registry \* try
auto\_execok fconfigure lrange regsub unknown
auto\_import fcopy lrepeat rename unload
auto\_load file lreplace return unset
auto\_mkindex fileevent lreverse scan update
auto\_mkindex\_old filename lsearch seek uplevel
auto\_qualify finally lset set upvar
auto\_reset flush lsort socket variable
bgerror for mathfunc source vwait
binary foreach mathop split while
break format memory string yield
catch gets msgcat subst yieldto
cd glob namespace switch zlib
chan global open tailcall
clock history package tcl_endOfWord
close http parray tcl_findLibrary
concat if pid tcl_startOfNextWord
continue incr pkg::create tcl_startOfPreviousWord
coroutine info pkg_mkIndex tcl_wordBreakAfter
dde \* interp platform tcl_wordBreakBefore
dict join platform::shell tcltest
encoding lappend proc tclvars
eof lassign puts tell
error lindex pwd throw
eval linsert re_syntax time

```

(\*): مخصصة لمنصة ويندوز

وصلات خارجية
------------

* الموقع الرسمي
* ويكي Tcl
* وثائق غير رسمية
* مكتبة «تي سي إل القياسية

المصادر
-------

1. ↑  "Language". *Tcl Developer Xchange*. مؤرشف من الأصل في 2018-01-03. اطلع عليه بتاريخ 2016-11-02.
2. ↑  "Download Tcl/Tk Sources". *Tcl Developer Xchange*. مؤرشف من الأصل في 2018-06-27. اطلع عليه بتاريخ 2016-11-01.
3. ↑  Windows PowerShell : PowerShell and WPF: WTF نسخة محفوظة 25 ديسمبر 2008 على موقع واي باك مشين.

| * ع
* ن
* ت
برمجيات حرة ومفتوحة المصدر |
| --- |
| عام | 
* حقوق متروكة
* مشروع جنو
* برمجيات حرة
* مصدر مفتوح
* نظام النافذة إكس
* برمجيات مفتوحة المصدر
* حركة البرمجيات الحرة
* قائمة البرامج الحرة مفتوحة المصدر

 |  |
| أنظمة تشغيل | 
* توزيعة برمجيات بيركلي
* داروين
* جنو
* مينيكس
* أوبن سولاريس
* رياكت أو إس
* توزيعة برمجيات بيركلي
* فري دوس
* هايكو
* لينكس

 |
| تطوير | 
* تجميعة مترجمات جنو
* بي إتش بي
* بايثون
* بيرل
* إكلبس
* فري باسكال
* جامباس
* مترجم شفرة حاسوب جنو
* جافا
* نت بينز
* لوا
* روبي
* تي سي إل

 |
| مديرو نوافذ | 
* فلكس بوكس
* جنوم
* كدي
* إكس إف سي إي

 |
| منظمات | 
* مبادرة المصدر المفتوح
* مؤسسة البرمجيات الحرة
* مؤسسة لينكس
* الجمعية الثقافية العلمية جنو/لينوكس و البرمجيات الحرة
* مؤسسة موزيلا
* أندرويد
* مؤسسة برمجيات أباتشي
* مؤسسة إكلبس
* فري دسكتوب.أورج
* مؤسسة جنوم
* مشروع جنو
* جوجل كود
* سورس فورج

 |
| تراخيص | 
* رخصة أباتشي
* رخصة بي إس دي
* رخصة جنو العمومية
* رخصة جنو العمومية الصغرى
* رخصة موزيلا العمومية
* رخصة إم أي تي
* رخص البرمجيات الحرة المتساهلة
* رخصة إكليبس العمومية

 |
| التحديات | 
* إدارة الحقوق الرقمية
* برمجيات احتكارية
* Secure boot

 |
|  تصنيف •  كومنز •  بوابة |

* أيقونة بوابةبوابة برمجيات
* أيقونة بوابةبوابة برمجيات حرة
* أيقونة بوابةبوابة برمجة الحاسوب

|  |  |
| --- | --- |
| ضبط استنادي: وطنية عدلها في ويكي بيانات | 
* الملف الاستنادي المتكامِل (GND)
* المكتبة القومية الإسرائيلية (J9U)
* مكتبة الكونغرس (LCNAF)

 |

|  |
| --- |
| **تي سي إل** في المشاريع الشقيقة: |
|  | 
* صور وملفات صوتية من كومنز.
 |