ÖZEL ÖĞRETMEN - TUTOR

ÖZEL ÖĞRETMEN
paradigma zorunluluk ( prosedür )
Tarafından dizayn edilmiştir Paul Tenczar ve Richard Blomme
geliştirici Paul Tenczar ve Urbana-Champaign'deki Illinois Üniversitesi
İlk ortaya çıktı 1969 ( 1969 )
Yazma disiplini Yok
Başlıca uygulamalar
ÖĞRETMEN, Mikro ÖĞRETMEN
Etkilenen
TenCORE , KULLANIM ( Regency Sistemleri )

TUTOR olarak da bilinen, PLATO Yazar Dili , bir olan programlama dili üzerinde kullanılmak üzere geliştirilen PLATO sisteminde de Urbana-Champaign Illinois Üniversitesi'nde kabaca 1965 TUTOR başlayarak başlangıçta tarafından tasarlanan Paul Tenczar kullanılmak üzere bilgisayar destekli öğretim (CAI) ve bilgisayar tarafından yönetilen talimat (CMI) ("dersler" olarak adlandırılan bilgisayar programlarında) ve bu amaç için birçok özelliğe sahiptir. Örneğin, TUTOR, öğrenci kayıtlarının ve istatistiklerin eğitmenler tarafından işlenmesini basitleştirmek için güçlü yanıt ayrıştırma ve yanıt değerlendirme komutlarına, grafiklere ve özelliklere sahiptir. TUTOR'un esnekliği, PLATO'nun (1972'de bir süper bilgisayar olarak kabul edilen şey üzerinde çalışan) hesaplama gücüyle birleştiğinde, onu uçuş simülatörleri, savaş oyunları, zindan tarzı çok oyunculu rol yapma oyunları, kart oyunları, kelime oyunları dahil olmak üzere oyunların yaratılması için uygun hale getirdi. oyunlar ve Bugs and Drugs ( BND ) gibi tıp dersi oyunları . TUTOR, 1980'lerin PLATO'sunun kaynak kodunun çoğunu çalıştıran ve Haziran 2020 itibariyle yaklaşık 5000 kullanıcısı olan Cyber1 PLATO Sisteminin programlama dili olarak bugün yaşıyor.

Kökenleri ve gelişimi

TUTOR, başlangıçta öğretim dersleri tasarlamak için özel amaçlı bir yazma dili olarak geliştirildi ve genel amaçlı bir programlama diline dönüşmesi plansızdı. TUTOR adı ilk olarak Plato III'ün sonraki günlerinde PLATO sisteminin yazar diline uygulandı . Bu ad altında dilin ilk dokümantasyonu, RA Avner ve P. Tenczar, Ocak 1969 tarafından yazılan The TUTOR Manual , CERL Report X-4 gibi görünmektedir.

Rusça Çeviriyi Bilgisayarla Öğretmek makalesi , PLATO IV'ün faaliyete geçmesinden kısa bir süre önce ÖĞRETMEN'in bir anlık görüntüsünü verir. Dilin temel unsurları mevcuttu, ancak komutlar büyük harfle verildi ve genel bir mekanizma kullanmak yerine, alternatif karakter kümeleri için destek WRUSS, "Rus karakter kümesini kullanarak yaz" gibi özel komut adlarıyla sağlandı .

1970'ler boyunca, TUTOR geliştiricileri, TUTOR programlarının tüm külliyatının aynı bilgisayar sisteminde çevrimiçi olarak depolanması gerçeğinden yararlandı. Ne zaman dili değiştirme ihtiyacı hissetseler, var olan tüm kodu, yaptıkları değişikliklere uyacak şekilde revize etmek için TUTOR kodu külliyatı üzerinde dönüştürme yazılımı çalıştırdılar. Sonuç olarak, TUTOR'un yeni sürümleri geliştirildiğinde, PLATO sürümüyle uyumluluğu korumak çok zor olabilir.

Control Data Corporation (CDC), 1981 yılına kadar TUTOR adını PLATO belgelerinden büyük ölçüde kaldırmıştı. Dilin kendisine PLATO Yazar Dili olarak atıfta bulundular . TUTOR dosyası veya hatta TUTOR ders dosyası ifadesi , PLATO Yazar Dilinde yazılmış metni depolamak için kullanılan dosya türünün adı olarak varlığını sürdürdü.

TUTOR dersinin yapısı

Bir TUTOR dersi, her ünitenin bilgi sunumu ile başladığı ve bir üniteden diğerine ilerlemenin bir veya daha fazla soruyu doğru cevaplamaya bağlı olduğu bir dizi üniteden oluşur . Gibi COBOL paragraflar, kontrol daha sonra içine, önceki birimi ve çıkış birimi bir öğretmen girebilir, fakat birimler, aynı zamanda kullanarak alt rutin olarak çağrılabilir doveya joinkomutları.

İşte TUTOR User's Memo , Mart 1973'ün 5. sayfasından bir örnek ünite ( Bilgisayar-tabanlı Eğitim Araştırma Laboratuvarı , University of Illinois at Urbana-Champaign):

unit    math
at      205
write   Answer these problems

        3 + 3 =

        4 × 3 =

arrow   413
answer  6
arrow   613
answer  12

Bu örnekten birkaç şey hemen anlaşılmalıdır.

  • İlk olarak, TUTOR sabit formatlı bir dildir. Her satır, komut adı için sabit 8 karakterlik bir alana sığması gereken bir komut adıyla başlar. Bu komutun argümanları ( etiketi ) 9. karakterden başlar. 9. sütuna ulaşmak için bir sekme tuşu kullanılmasına rağmen, plato'nun sekme karakteri olmadığı için boşluklar üretti.
  • writeYukarıdaki komut gibi bazı durumlarda, etiket birden çok satırdan oluşabilir. Devam satırları ya boştur ya da önde gelen bir sekmeye sahiptir.
  • Ekran koordinatları tek sayılar olarak sunulur, dolayısıyla 205 satır 2 sütun 5'i ve 413 satır 4 sütun 13'ü belirtir.

Görünmeyen şey, bu ünitede örtük olan kontrol yapısıdır. arrowKomut işaretleri girişinde yargılamak blok Bu kontrol yapısı Tutor eşsiz özelliklerinden biridir.

Benzersiz özellikler

TUTOR bir dizi benzersiz özellik içeriyordu. Aşağıdaki liste, bir ÖĞRETMEN kılavuzunun yerini alması amaçlanmamıştır, sadece dilin en ilginç, yenilikçi ve bazen kafa karıştırıcı özelliklerini vurgular.

Cevap yargılama

Bir yargılamak blok TUTOR bir ile başlayan bir kontrol yapısı arrowaşağıdaki komuta ve uçları arrow, endarrowveya unitkomut. arrowKomut özel ok karakteri (benzeyen "▷") ile giriş için de istemleri, belirtilen ekran koordinatları bir istem olarak gösterilir. Aslında, bir yargılama bloğu, öğrencinin doğru bir cevap ileriye doğru ilerlemeye izin verene kadar bir soruyu cevaplamak için birden fazla girişimde bulunabileceği bir geri izleme kontrol yapısı olarak düşünülebilir.

Desen eşleştirmeyi değerlendirmek

Her değerlendirme bloğu , her biri, bu model eşleşirse yürütülecek (muhtemelen boş) bir komut bloğu tanıtan bir dizi desen eşleştirme komutundan oluşur . En yaygın iki kalıp eşleştirme komutu answerve idi wrong. Bunlar, answerbir öğrenci yanıtının eşleşirse doğru wrongolduğuna karar verirken, bir öğrenci yanıtının yanlış olduğuna karar vermesi dışında aynı kalıp eşleştirme semantiğine sahipti .

answerve wrongkomutlarındaki etiket alanları, isteğe bağlı, gerekli ve alternatif kelimelerin listelerinden oluşuyordu. 1973 TUTOR Kullanıcı Notundaki alıştırma 4-1'deki bu örneği düşünün :

answer  <it, is,a, it's, figure,
        polygon>
        (right, rt) (triangle, triangular)

Bu, "dik üçgendir" veya "üçgen bir şekildir" veya sadece "rt üçgeni" gibi yanıtlarla eşleşir. "tür üçgen" ile eşleşmez çünkü "tür" sözcükleri yoksayılan olarak listelenmez ve "üçgen, değil mi?" çünkü sipariş yanlış.

Kalıp eşleştirme alt sistemi yazım hatalarını algıladı, bu nedenle "üçgen" veya "üçgen" sözcükleri örnek kalıpla eşleşir. Ders yazarı specs, sistemin yazım hataları konusunda ne kadar bilgiç olduğunu ayarlamak için komutu kullanabilir .

Çeşitli TUTOR uygulamaları tarafından kullanılan örüntü eşleştirme algoritmaları ayrıntılı olarak değişiklik gösteriyordu, ancak tipik olarak, giriş metnindeki her bir kelime ve örüntüdeki her bir kelime, bit vektörlerine dönüştürüldü . Öğrenci girdisinin bir kelimesinin modelin bir kelimesiyle eşleşip eşleşmediğini görmek için , kelimeler arasındaki farkın derecesinin bir ölçüsü olarak iki bit vektörü arasındaki Hamming mesafesi kullanıldı. Bit vektörleri, harf varlığı, harf çifti varlığı ve ilk harf için alanlar ile tipik olarak 60 veya 64 bit uzunluğundaydı. Sonuç olarak, dışlayıcıdaki bir bitin veya bu tür iki bit vektörünün sayısı, karşılık gelen kelimeler arasındaki fonetik farkın kapsamına yaklaştı.

Kontrol yapılarını değerlendirmek

Bir TUTOR değerlendirme bloğunun kontrol yapısının tüm erken sunumları kafa karıştırıcıydı. Bununla birlikte, modern terimlerle, bir değerlendirme bloğu , öğrenci girdisinin doğru olduğuna karar verildiğinde çıkan yinelemeli bir kontrol yapısı olarak tanımlanabilir . Bu denetim yapısının gövdesi , her biri veya gibi bir kalıp eşleştirme komutuyla tanıtılan bir dizi durumdan oluşur . Bir önceki döngüde değerlendirme döngüsünün gövdesi tarafından üretilen tüm çıktılar, bir sonraki döngüden önce ekrandan silinir. answerwrong

1973 TUTOR Kullanıcı Notunun 4-1 numaralı alıştırmasından bu örneği düşünün :

wrong   <it, is,a> square
at      1501
write   A square has four
        sides.

Öğrencinin "kare" veya "kare" yazması durumunda cevabın yanlış olduğuna karar verilir ve "Bir karenin dört kenarı vardır" metni verilir. ekrandaki satır 15 sütun 1'den başlayarak çıktıdır. Bu çıktı, öğrenci yeni bir cevap girmeye başlayana kadar ekranda kalır, bu noktada yeni cevaba verilen cevabın hesaplanabilmesi için silinir. Görüntü ekranının önceki durumuna dönme mekanizması, uygulamadan uygulamaya değişir. İlk uygulamalar, terminali silme moduna geçirerek ve eşleşen tüm vakayı yeniden yürüterek çalıştırıldı. Daha sonraki bazı uygulamalar, yargılama sırasında üretilen çıktıyı bu çıktının silinebilmesi için arabelleğe aldı.

joinKomut altyordamın eşsiz biçimiydi. Join komutunun kendisi yerine birleştirilen ünitenin gövdesinin metinsel olarak değiştirilmesine eşdeğer olarak tanımlandı (sayfa 21, 1973 TUTOR User's Memo ). Bu nedenle, birleştirilmiş bir birim, bir yargılama bloğunun bir bölümünü içerebilir. Bu nedenle, yargılama bloğu kavramsal olarak bir dizi vakayı kapsayan bir yineleyici iken , bu blok keyfi olarak alt programlara bölünebilir. (Alternatif bir altyordam çağrısı, komut, diğer programlama dillerindeki altyordam çağrılarıyla ilişkili olağan semantikle uyumluydu.) do

Grafik ve ekran komutları

PLATO IV öğrenci terminali, nokta çizme , çizgi çizme ve metin görüntüleme için donanım desteğine sahip 512'ye 512 piksellik bir plazma ekran paneline sahipti . PLATO IV terminalindeki her piksel ya turuncu ya da siyahtı. CDC PLATO V terminali , plazma panelini taklit etmek için monokrom siyah beyaz bir CRT kullandı. Yerleşik karakter seti, her biri 8 x 16 piksel olan 63 karakterlik 4 sete sahipti, bunların yarısı sabit, yarısı programlanabilirdi. Tutor dili bu terminal için tam destek sağladı.

İki koordinat sistemi vardı ( Bruce Sherwood tarafından yazılan The TUTOR Language , sayfa II-1'e bakın ):

  • Kaba koordinatlar, metnin satır ve sütunları cinsinden belirtildi. Örneğin kaba koordinat 1501, ekrandaki sol üst karakterin 101 konumunda ve sağ alt karakterin 3264'te olduğu satır 15 karakter 1'e bir referanstı.
  • İnce koordinatlar, ekranın sol alt köşesine göre X ve Y koordinatları olarak belirtildi. 0,511 ince koordinatı ekranın sol üst köşesini belirtirken, 0,496 kaba 101'e eşdeğerdi ve bir karakterin 16 piksel yüksekliğine ve karakterlerin sol alt köşelerine göre çizilmesine izin veriyordu.

Çizim komutları

Aşağıdaki örnek, Tutor'un bazı çizim komutlarını göstermektedir.

draw    1812;1852;skip;1844;1544
circle  16,344,288
draw    1837;1537;1535;1633;1833

Komuttaki ardışık koordinatları ayırmak için noktalı virgül kullanımına dikkat edin draw. Bu, virgülle ayrılmış hassas koordinatların açık bir şekilde kullanılmasına izin verir. Normalde, çizim komutu ardışık noktaları çizgi parçalarıyla birleştirir, ancak skipetiketi koyarak , drawkomut kavramsal olarak kalemini kaldırmak için yapılabilir.

Komuttaki etiketler circle, merkezin yarıçapını ve hassas koordinatlarını verir. Ek etiketler, kısmi daireler için başlangıç ​​ve bitiş açılarını belirtebilir.

Elle çizim komutları oluşturmak zordur, bu nedenle bu işi otomatikleştirmek için 1974 yılına kadar PLATO sistemine bir resim düzenleyici dahil edilmiştir. Bu, yalnızca sabit koordinatlara sahip çizim komutlarıyla ilgilenebilir.

Metin işleme komutları

Aşağıdaki örnek, Tutor'un bazı metin oluşturma araçlarını göstermektedir.

unit    title
size    9.5     $$ text 9.5 times normal size
rotate  45      $$ text rotated 45 degrees
at      2519
write   Latin
size    0       $$ return to normal writing
rotate  0
at      3125
write   Lessons on Verbs

Sıfır boyutunda sıfır döndürmede oluşturulan metin, PLATO terminalinin yerleşik karakter oluşturma donanımını kullanırken, sıfır olmayan boyut ve döndürme ile oluşturma, hat bölümleriyle yapıldı ve bu nedenle, terminale giden iletişim bağlantısının hızı nedeniyle önemli ölçüde daha yavaştı.

Kontrol Yapıları

Eşsiz cevap değerlendirme mekanizmalarının yanı sıra, TUTOR'un orijinal kontrol yapıları seti oldukça seyrekti. 1970'li yılların ortalarında bu eksiklik tanıtan kişiler tarafından ele alındı if, endifisteğe bağlı olan bloklar elseifve elsebölümler. Bu kontrol yapılarının semantiği rutindi , ancak sözdizimi Öğretmen Dilinin zorunlu girintisini devraldı, Python'unkini önceden verdi ve girintiyi devam satırlarından ayırt etmek için benzersiz bir boş olmayan girinti karakteri ekledi.

Bu, Elaine Avner , 1981 tarafından TUTOR Komutları ve Sistem Değişkenlerinin Özeti (10. baskı) sayfasının S5 sayfasından aşağıdaki örnekte gösterilmiştir :

if      n8<4
.       write   first branch
.       calc    n9⇐34
elseif  n8=4
.       write   second branch
.       do      someunit
else
.       write   default branch
.       if      n8>6
.       .       write   special branch
.       endif
endif

(Bildirimdeki atama oku calcbazı tarayıcılarda doğru şekilde oluşturulmuyor. <= ile benzer ancak tek karakter olarak görünüyor. PLATO IV klavyesinde özel bir tuşu vardı.)

Aynı sözdizimi için kullanılmıştır loop, endloopiçin semantik ile bloke karşılaştırılabilir ise ilmekler geleneksel programlama dillerinde. Bu, Elaine Avner, 1981 tarafından TUTOR Komutları ve Sistem Değişkenlerinin Özeti (10. baskı) sayfasının S6 sayfasındaki aşağıdaki örnekte gösterilmiştir :

loop    n8<10
.       write   within loop
.       sub1    n8
reloop  n8≥5
.       write   still within loop
.       do      someunit
outloop n8<3
.       write   still within loop
endloop
write   outside of loop

Not olduğunu reloopve outloopkomutlar ile bir şekilde benzerdirler continueve breakdayalı dillerin ifadeleri C , onlar değiştirmek döngünün girinti seviyesinde oturmak gerektiğini hariç, ve belirtilen denetim transferi gerçekleşecek olduğunda onlar gösteren bir durumdur etiketine sahip . Bu, yapıyı diğer dillerdekinden daha güçlü kılar, çünkü iç döngünün herhangi bir satırı, birkaç dış döngüyü tek bir ifadeyle sonlandırabilir veya yeniden döngüleyebilir.

İfade sözdizimi

TUTOR'un ifade sözdizimi, FORTRAN'ın sözdizimine bakmadı ve dönemin kötü tasarlanmış karakter kümeleriyle sınırlı değildi. Örneğin, PLATO IV karakter seti , alt simge ve üst simge için kontrol karakterlerini içeriyordu ve TUTOR bunları üs almak için kullandı. Şu komutu düşünün ( The TUTOR Language , Sherwood, 1974, sayfa IV-1'den ):

circle  (412+72.62)1/2,100,200

Karakter kümesi de çarpma ve bölme için geleneksel sembolleri dahil ×ve ÷fakat FORTRAN tarafından kurulan sözleşmeler bir daha radikal hareketle, bu kapalı çarpma izin ifadeleri böylece (4+7)(3+6)ve (değerler 99 ve sırasıyla 15,9 ile, op geçerliydi alıntı). Bu özellik gerekli görüldü. Öğrenciler bir soruya sayısal bir cevap yazdığında, operatörleri ve değişkenleri ve standart cebirsel gösterimi kullanabilirler ve program, formülü derlemek ve çalıştırmak ve bunun sayısal olarak eşdeğer olup olmadığını kontrol etmek için TUTOR "hesaplama" komutunu kullanırdı. kayan nokta yuvarlama hatası) doğru cevaba. 3.4+5(23-3)/2

Dil, hesaplamalarda kullanılabilecek uygun değere sahip, Yunanca pi (π) harfiyle adlandırılan önceden tanımlanmış bir sabit içeriyordu. Bu nedenle, ifade , bir üst simge ile gösterilen yerleşik π sabiti, örtük çarpma ve üs alma kullanılarak bir dairenin alanını hesaplamak için kullanılabilir. πr2

TUTOR olarak, kayan nokta karşılaştırma x=ytrue olarak tanımlandı xve y(sayfa C5 bkz yaklaşık olarak eşit olduğu PLATO Kullanıcı Memo, Sayı One Avner, 1975 tarafından). Bu öğretim dersleri matematiksel olarak naif geliştiriciler için hayatı basitleştirilmiş, ancak her ikisi de mümkün olduğunu, çünkü zaman zaman sayısal olarak gelişmiş bir koddan geliştiriciler için baş ağrısı neden x<yve x≥yaynı anda doğru olabilir.

Hafıza yönetimi

Bir yazarlık dili olarak TUTOR, yalnızca minimum bellek kaynaklarıyla ve bunları işlemek için yalnızca en kaba araçlarla başladı. Her kullanıcı işleminin 150 değişkenlik özel bir veri segmenti vardı ve paylaşılan ortak bloklar eklenebilir, bu da paylaşılan bellek aracılığıyla kullanıcılar arası iletişime izin verir.

PLATO IV sisteminde kelimeler, CDC 6600 bilgisayar ailesiyle uyumlu olarak 60 bit idi . Daha sonraki bazı uygulamalar bunu 64 bit olarak değiştirdi.

Temel bellek kaynakları

Her işlemin özel bellek bölgesi, öğrenci değişkenleri olarak adlandırılan, her biri 150 kelimeden oluşuyordu; bu değişkenlerin değerleri, bireysel kullanıcıyı oturumdan oturuma izleyerek kalıcıydı. Bu şekilde ele alındı n1yoluyla n150değerleri tam sayıdır, ya da beklemeye için kullanıldığında v1boyunca v150kayan nokta değerleri tutmak için kullanıldığında.

Bir TUTOR dersi, commonkomutu kullanarak 1500 kelimeye kadar paylaşılan belleğe tek bir bölge ekleyebilir . Her ders, o dersin tüm kullanıcıları tarafından paylaşılan değişkenleri içeren adsız bir geçici ortak bloğa sahip olabilir. Bu tür bloklar, bir ders kullanıma girdiğinde oluşturulur ve ders etkin olmadığında serbest bırakılır. Buna karşılık, adlandırılmış ortak bloklar, bir ders bloğuyla (bir disk dosyası) ilişkilendirildi. Paylaşılan bellek, nc1aracılığıyla nc1500(tamsayılar için) veya vc1aracılığıyla vc1500(kayan nokta sayıları için ) olarak adreslendi .

150 öğrenci değişkeninin yetersiz olduğu durumlarda, bir ders storagekomutu 1000 kelimeye kadar ek bir özel bellek bölümü oluşturmak için kullanabilir. Bu segment yalnızca takas alanında mevcuttu, ancak öğrenci değişkenlerine veya ortak değişkenlere eşlenebilirdi. Örneğin ( The TUTOR Language , Sherwood, 1974, sayfa X-11'den ):

common  1000
storage 75
stoload vc1001,1,75

Bu örnek, tanımlar nc1için nc1000ise bir isimsiz ortak blok ortak olarak nc1001için nc1075özel depolama vardır.

Sembolik isimleri tanımlama

Tutor definekomutu, C #define önişlemci yönergesine çok benziyordu . Bu, anımsatıcı adları değişkenlerle ilişkilendirmenin tek yoluydu. Statik olarak bellek ayırmak ve değişkenlere ad atamak programcıya kalmıştı. TUTOR Kullanıcı Notunun 17. sayfasındaki bu örneği düşünün - TUTOR'a Giriş , 1973"

define  mynames
        first=v1, second =v2
        result=v3

Bu, mynamesüç kayan nokta değişkeni tanımlayan bir dizi tanım oluşturur . Kullanıcılara, " Dersinizde, defineifadenin kendisi dışında herhangi bir yerde v3'ler veya v26'lar olmamalıdır . Tüm tanımlarınızı, hangi değişkenleri kullandığınıza dair hazır referansın bulunacağı dersin en başına koyun." ( The TUTOR Language , Sherwood, 1974 , orijinal sayfa IV-5'in altını çizerek )

Fonksiyonlar, TUTOR Language , Sherwood, 1974'ün IX-2. sayfasındaki bu çizimde olduğu gibi makro ikame semantiği ile tanımlanabilir :

define  cotan(a)=cos(a)/sin(a)

C'den farklı olarak , TUTOR'un orijinal kapsam kuralları , yerel tanımlar için herhangi bir hüküm içermeyen saf "kullanımdan önce tanım" idi. Bu nedenle, ayukarıda kullanılan biçimsel parametrenin önceden herhangi bir tanımı olmamalıdır.

Daha sonra TUTOR'un geliştirilmesinde, birden çok adlandırılmış tanım kümesinin tanıtılmasıyla, programcıya şu anda hangi tanım kümelerinin yürürlükte olduğu üzerinde açık bir kontrol verildi. Örneğin define purge, setname, adlandırılmış kümedeki tüm tanımları atar.

Diziler, paketlenmiş diziler ve metin işleme

Metin işlemeye yönelik orijinal TUTOR araçları, belirli metin işlemleri için komutlara dayanıyordu, örneğin, packpaketlenmiş bir karakter dizesini bellekteki ardışık değişkenlere yerleştirmek, searchbir dizeyi diğerinde aramak ve movebir dizeyi bellekten belleğe taşımak için. 1975'te, tamsayı dizileri ve paketlenmiş diziler için daha genel araçlar eklendi. PLATO Kullanıcı Notunun Sayfa 14 - TUTOR Komutlarının ve Sistem Değişkenlerinin Özeti , Avner, 1975, aşağıdakileri verir:

define  segment, name=starting var, num bits per byte, s
        array, name(size)=starting var
        array, name (num rows, num columns)=starting var

Anahtar sözcükle tanımlanan parçalı diziler , Pascal'dakisegment paketlenmiş dizilerle karşılaştırılabilirdi . Bayt boyutu ve dizi öğelerinin imzalı veya imzasız olarak ele alınıp alınmayacağı tamamen kullanıcı kontrolündeydi. Rastgele metin işleme, bayt boyutunu makine bayt boyutuna, ekran kodunu kullanan uygulamalarda 6 bit, daha sonraki bazı ASCII ve genişletilmiş ASCII uygulamalarında 8 bit ayarlayarak yapılabilir . Bölünmüş diziler için herhangi bir dizi boyutu özelliğinin bulunmadığına dikkat edin.

parametre geçişi

PLATO IV döneminin başlarında TUTOR'a genel bir parametre geçiş mekanizması eklendi. The TUTOR Language by Sherwood, 1974, Sayfa IV-10 aşağıdaki örneği verir:

define  radius=v1,x=v2,y=v3
unit    vary
do      halfcirc(100,150,300)
do      halfcirc(50)
*
unit    halfcirc(radius, x,y)
circle  radius, x,y,0,180
draw    x-radius, y;x+radius, y

Komutun bağımsız değişken listesinde listelenen resmi parametrelerinunit , yalnızca statik olarak tahsis edilmiş global değişkenler için tanımlanmış adlar olduğuna dikkat edin . Parametre geçişinin semantiği, hedef birime kontrol aktarımı sırasındaki atamaya eşdeğer olarak verildi ve yukarıdaki ikinci komutta olduğu gibi gerçek parametreler atlanırsa, doetki karşılık gelen resmin önceki değerlerini bırakmaktı. parametreler değişmez.

Yerel değişkenler

Yerel değişkenler 1980 civarında bir süre TUTOR'a eklendi. Yerel değişkenleri kullanmak isteyen ders yazarlarının lvars, 128 kelimeye kadar yerel değişkenler için kullanılan tamponun boyutunu bildirmek için komutu kullanmaları gerekiyordu . Bunu yaptıktan sonra, yerel değişkenleri kullanan bir birim aşağıdaki gibi başlayabilir ( ÖĞRETMEN Komutları ve Sistem Değişkenlerinin Özeti , Avner, 1981, Sayfa C2'den ):

unit    someu
        NAME1,NAME2,NAME3(SIZE)
        NAME4=CONSTANT
        floating:NAME5,NAME6,NAME7(SIZE)
        integer, NUM BITS:NAME8,NAME9
        integer, NUM BITS,signed:NAME10
        integer:NAME11

unitYukarıda verilen komutun devam satırları, defineyerel kapsamlı bir örtük komutun satırları olarak alınır . n150Böyle bir yerelde kullanılabilecek öğrenci değişkenleri açısından geleneksel tanımlar define, ancak burada gösterilen formların tümü, adları lvarskomut tarafından tahsis edilen bellek bloğundaki konumlara otomatik olarak bağlar . Mevcut TUTOR belgeleri, yerel değişkenlerin nasıl tahsis edildiğini tartışmaz.

Diğer uygulamalar

Her biri orijinal TUTOR diline benzeyen, ancak farklılıkları olan oldukça büyük bir TUTOR ile ilgili dil ailesi olmuştur. Özellikle, TUTOR, belirli CDC anabilgisayar donanımında çalışan bir sistemin (PLATO bilgisayar tabanlı eğitim sistemi) bir bileşeniydi. Verimlilik için, TUTOR'da donanıma özgü bazı öğeler vardı (örneğin, 60 bitlik diziler veya 10 adet altı bitlik karakter olarak kullanılabilen 60 bitlik kelimeler olan değişkenler, vb.). Ayrıca, TUTOR, Windows odaklı grafik kullanıcı arabiriminin (GUI) ortaya çıkmasından önce tasarlanmıştır.

microTutor dili, UIUC'daki PLATO projesinde, bir dersin bölümlerinin, ana bilgisayarda çalışan TUTOR koduna bağlantılar ile mikrobilgisayarlar içeren terminallerde çalışmasına izin vermek için geliştirildi. microTutor lehçesi aynı zamanda UIUC'de geliştirilen ve Japonya'da TDK'ya lisanslanan Cluster sisteminin programlama diliydi; Küme sistemi, depolama ve derleme sağlayan bir mini bilgisayara bağlı küçük bir terminal grubundan oluşuyordu. Tencore Dil Yazma Sistemi PC'ler için Paul Tenczar tarafından geliştirilen ve Bilgisayar Öğretmenliği Corporation tarafından satılan bir TUTOR türevidir. cT, Carnegie Mellon'da geliştirilen ve programların Windows, Mac ve Unix/Linux sistemlerinde pencereli GUI ortamlarında değişiklik olmadan çalışmasına izin veren TUTOR ve microTutor'un bir türeviydi: cT Programlama Dili Arşivleri

Referanslar

Dış bağlantılar