T (programlama dili) - T (programming language)
| paradigma | Çoklu paradigma : nesne yönelimli , zorunlu , işlevsel , meta |
|---|---|
| Aile | Lisp |
| Tarafından tasarlandı | Jonathan A. Rees Norman I. Adams |
| geliştiriciler | Jonathan A. Rees Norman I. Adams |
| İlk ortaya çıktı | 1982 |
| Son sürüm | 3.0 / 1 Ağustos 1984
|
| Yazma disiplini | dinamik , güçlü |
| platformu | Çapraz platform |
| işletim sistemi | Çapraz platform |
| İnternet sitesi | mumble |
| Tarafından etkilenmiş | |
| Şema | |
| Etkilenen | |
| EuLisp , Joule | |
T bir olan lehçesi arasında Şeması programlama dili Jonathan A. Rees tarafından 1980'lerin başında geliştirilen Kent M. Pitman ve Norman I. Adams , Yale Üniversitesi'nden dil tasarımı ve uygulanmasında bir deney olarak.
Gerekçe
T'nin amacı, Guy L. Steele Jr. ve Gerald Jay Sussman tarafından Scheme hakkındaki makale dizilerinde geliştirilen tezi test etmektir : Scheme, olağanüstü ifade gücüne sahip pratik bir programlama dili için temel olarak kullanılabilir ve Scheme'in uygulamaları. diğer Lisp sistemlerinden daha iyi performans gösterebilir ve geleneksel makine mimarilerinde genellikle doğası gereği Lisp'ten daha verimli olduğu düşünülen C ve BLISS gibi programlama dillerinin uygulamalarıyla rekabet edebilir . Bunun çoğu, Orbit adlı bir optimize edici derleyici aracılığıyla gerçekleşir .
T, modern Scheme'de bulunmayan bazı özellikleri içerir. Örneğin, T nesne yönelimlidir ve yerel olmayan şekilde değiştirilebilen ve bir modül sistemi olarak kullanılabilen locales adı verilen birinci sınıf ortamlara sahiptir . T için çeşitli ekstra özel formları vardır tembel değerlendirme ve akış kontrolü ve eşdeğer Common Lisp 'ın SETF . T, Scheme gibi, mevcut-devamlı çağrıyı (çağrı/cc) destekler, ancak aynı zamanda adı verilen daha sınırlı bir forma da sahiptir catch. T kılavuzundan, varsayımsal bir uygulaması consşöyle olabilir:
(define-predicate pair?)
(define-settable-operation (car pair))
(define-settable-operation (cdr pair))
(define (cons the-car the-cdr)
(object nil
((pair? self) t)
((car self) the-car)
((cdr self) the-cdr)
(((setter car) self new-car) (set the-car new-car))
(((setter cdr) self new-cdr) (set the-cdr new-cdr))))
Bu örnek, T'deki nesnelerin kapanışlar ve mesaj iletme ile yakından ilişkili olduğunu göstermektedir. Bir ilkel join, iki nesneyi bir araya getirerek kalıtım benzeri bir şeye izin verir .
| 1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LISP 1, 1.5, LISP 2 (terk edilmiş) | ||||||||||||||
| Maclisp | ||||||||||||||
| interlisp | ||||||||||||||
| MDL (programlama dili) | ||||||||||||||
| Lisp Makinesi Lisp | ||||||||||||||
| Şema | R5RS | R6RS | R7RS küçük | |||||||||||
| NIL | ||||||||||||||
| ZIL (Zork Uygulama Dili) | ||||||||||||||
| Franz Lisp | ||||||||||||||
| Ortak Lisp | ||||||||||||||
| Le Lisp | ||||||||||||||
| T | ||||||||||||||
| Chez Programı | ||||||||||||||
| Emacs Lisp | ||||||||||||||
| AutoLISP | ||||||||||||||
| PicoLisp | ||||||||||||||
| EuLisp | ||||||||||||||
| ISLISP | ||||||||||||||
| OpenLisp | ||||||||||||||
| PLT Şeması | raket | |||||||||||||
| GNU Guile | ||||||||||||||
| Görsel LISP | ||||||||||||||
| Clojure | ||||||||||||||
| yay | ||||||||||||||
| LFE | ||||||||||||||
| Merhaba | ||||||||||||||
Limanlar
T, aşağıdakiler dahil birçok donanım platformuna ve işletim sistemine taşındı :
- MIPS : Aralık 3100 (pmax), SGI IRIS
- Motorola 68000 (m68k): Apollo Etki Alanı/OS, HP/UX , Mac/AUX, NeXT , SunOS 3
- NS320xx (n32k): Encore Multimax
- SPARC : SunOS 4 ve üzeri, Solaris , Unix on Connection Machine 5
- VAX : Ultrix
Ayrıca bakınız
Referanslar
Dış bağlantılar
- Resmi internet sitesi
- T'nin Tarihi, Olin Shivers
- İnternet Arşivi aracılığıyla ReadScheme'den T kılavuzu (PDF)