FLOW (programlama dili) - FLOW (programming language)

AKIŞ
ParadigmaYapılandırılmamış, zorunlu
Tarafından tasarlandıJef Raskin
İlk ortaya çıktı1970; 50 yıl önce (1970)
Tarafından etkilenmiş
TEMEL

AKIŞ bir eğitim programlama dili tarafından tasarlandı Jef Raskin ve UCSD Sanat Bölümünde bir lisans öğrencisi olan Jonathan (Jon) Collins, 1970'te ve birkaç mini bilgisayarlar 1970'lerin başında. Dilin amacı, keşfetmeyi kolaylaştırmaktır algoritmalar oldukça etkileşimli bir ortam aracılığıyla. Genel dil, sözdizimi ve yapı bakımından, BASIC programlama dili, ancak kod yazmayı kolaylaştırmak için bir dizi değişiklik var. Bunlar arasında en dikkate değer olanı, genellikle tek bir karakter olan kısa dizelerin dil tarafından tam "genişletilmemiş" kaynak koduna genişletildiği "yazarak büyütme" kavramıdır. Modern entegre geliştirme ortamları ve kod odaklı metin editörleri genellikle benzer bir özelliği içerir, şimdi normal olarak otomatik tamamlama. Başlangıç ​​programcısı önce sorunu çözmek için bir akış şeması oluşturacaktır. Tüm problemler kelimeleri içerdiğinden (matematik problemleri yerine) çözüm sezgiseldi. Akış şeması, yukarıdan aşağıya mekanik bir yöntem kullanılarak akış programlama diline çevrilebilir.

Tarih

1970 yılında, İngilizce Bölümü Kansas Üniversitesi beşeri bilimlerde bilgisayar kullanımı üzerine bir toplantı düzenledi. Konferansı, 13 Haziran - 18 Ağustos tarihleri ​​arasında gerçekleştirilen ve Jef Raskin'in diğer öğretmenlerin temel bilgisayar becerilerini eğitmekle ilgilenen birkaç öğretmenden biri olduğu bir eğitim oturumu izledi. Bu dönemde Raskin, FLOW dil konseptini geliştirdi.[1]

FLOW'un temel tasarım unsurlarından biri, dilin girişini mümkün olduğunca otomatikleştirerek sözdizimi hatalarını önleme girişimiydi. Örneğin, biri ifadeyi girmek isterse "10" YAZDIR, kullanıcı sadece yazmak zorunda kaldı S10 ve etkileşimli düzenleyici, yazdıkça genişletebilirdi. Kullanıcı geçersiz bir komut girdiyse, terminalde yanıp söner ve ardından otomatik olarak silinir, böylece kullanıcı "yanlış bir tuşa basmaktan hiç de kötü değildir". Bu kavrama "tipleme amplifikasyonu" olarak atıfta bulundular ve yavaş yazanlar veya bir terminal kullanarak fiziksel sorunları olanlar için bir engeli kaldırma avantajına sahip olduğunu belirttiler.[2]

Lewis ve Norman daha sonra bu kavramı "gag" olarak adlandırdılar, çünkü kullanıcının girdisini yararlı bir şey yazana kadar tıkadılar. Bunu, Raskin'in gözlerini kapattığı ve terminalde rastgele tuşlara basıp anlamsız da olsa sözdizimsel olarak doğru bir program oluşturduğu FLOW'un en sevdiği gösterilerinden birini anlatarak açıkladılar.[3]

FLOW sisteminin kullanıcı etkileşimine yaklaşımının bir başka yönü de, hata ayıklayıcı. Bu, komutu içeriyordu YÜRÜYÜŞ, BASIC'lere bir analog KOŞMAK Bu, her bir ifadeyi modern tek adımlı sistemlere benzer bir şekilde çalıştırdıktan sonra gecikti.[4][3]

Döndüğünde California Üniversitesi, San Diego (UCSD), Raskin UCSD'den fon ayarlayabildi ve Ulusal Bilim Vakfı FLOW sistemini geliştirmek için ekipman satın almak için toplam 76.000 $ (2019'da 500.350 $ 'a eşdeğer).[5] İlk sistem üçten oluşuyordu Veri Genel Nova mini bilgisayarlar 12k word bellek, birkaç VST 1200 terminali, bir Tektronix 4002 grafik terminali ve bir HP 7200 çizici. Eylül 1973'te CPU'lar 32 bin kelime belleğe güncellendi.[6]

FLOW'un ilk sürümü iki kişi tarafından uygulandı mezun öğrenciler UCSD'de. Orijinal sürüm şurada uygulandı: FORTRAN ama daha sonra Nova'ya taşındı assembler dili. Daha sonraki bağlantı noktaları arasında MICRO800 assembler, BASIC ve Algol.[6]

Açıklama

Genel organizasyon

BASIC gibi FLOW, satır numaralarını hem düzenleme yardımı hem de ifade etiketleri olarak kullanır. Çoğu BASIC'ten farklı olarak, FLOW 10. satırdan başlayıp yeni satırlar girildikçe 10 artarak programları otomatik olarak numaralandırır. Satır numaraları üç basamaklı olarak biçimlendirilmiştir, bu nedenle satır 10, 010 olarak görüntülenir. Kullanıcılar ayrıca satır numaralarını manuel olarak girebilir ve tüm programı, NUMARA komut.[5]

BASIC'in aksine, KOŞMAK komut, belirli bir satıra ulaşıldığında durdurma talimatı verilebilir, örneğin, İLK HATTAN 200'E KOŞ. Bu komutu girmek için kullanıcı basitçe RF200geri kalanı komut satırına "yükseltilir".[5]

Sözdizimi ve yetenekler

FLOW ve BASIC arasındaki en belirgin fark, FLOW'un yalnızca bir değişkene (IT) sahip olması ve matematiksel operatörlerden yoksun olmasıdır. Dilde, tümü temel mantık veya dize manipülasyonu uygulayan yalnızca yedi deyim vardır. Eşdeğeri yok döngü için her iki durumda da döngü tamamen EĞER testler ve ATLAMAK ifadeler.[7]

Dil, BASIC'ler gibi doğrudan kullanıcı etkileşimine sahip değildir. GİRİŞ, veri bunun yerine FLOW'un BASIC'in analogunda tanımlanır VERİ Beyan, METİN. METİN tırnakla sınırlandırılmış bir dizeyi tanımlar, örneğin METİN "MERHABA, DÜNYA", bu daha sonra bir kerede karakter olarak okunur ANLA. O son okunan karakteri içeren ve daha sonra diğer ifadelerde kullanılabilen bir meta değişkendir. YAZDIR. O boş bir dizge değil, tek bir boşluk olur. METİN tamamen okunur.[5]

Programlar birden çok METİN ifadeler, ancak BASIC'in aksine VERİ tüm satırların tek bir sürekli veri bloğu olarak kabul edildiği durumlarda, yalnızca bir METİN ifadesi, tercümanın karşılaştığı anda etkindir. Başka bir deyişle, iki varsa METİN bir programdaki ifadelerde olduğu gibi daha uzun bir ifade olarak değerlendirilmezler. VERİ, O aktif olanın sonundan çıktığında bir boşluk döndürür METİN ifadesi ve bir sonrakine kadar daha fazla veri döndürmeyecek METİN kodda ifade ile karşılaşılır.[5]

İfadeler

Kimden:[8]

Program beyanları

YORUM YAP - BASIC'lere eşdeğer REM
YAZDIR - BASIC'de olduğu gibi, çift tırnak arasında değişmez dizeler alır, O değişken veya YENİ BİR HATTA bir satır başı yazdırmak için.
METİN - benzer VERİ BASIC dilinde, ancak yalnızca dizeler için kullanılır
ANLA - mevcut TEXT ifadesinden sonraki karakteri okur
ATLAMAK - eşittir GİT, hedef satırları her zaman üç haneye genişletir
İSE ... ŞUNA ATLA - eşittir EĞER ... SONRA ancak bunlara karşı yalnızca eşitlik testleri yapabilir O
DUR - bir programı sonlandırmak için kullanılır, ancak gerekli değildir

Etkileşimli komutlar

KOŞMAK - BASIC'de olduğu gibi, ancak hem başlangıç ​​hem de bitiş satırlarını tanımlayabilir ve meta satırları kullanabilir İLK SATIR ve SON
YÜRÜYÜŞ - programı yavaş çalıştırır
GÖRÜNTÜLE - eşittir LİSTE. Tüm programı listelemek için bir İLK HATTAN SONA KADAR GÖRÜNTÜLEME
SİL - bir programdan satırları kaldırmak, 038'DEN 140'E SİL
NUMARA - programdaki satırları yeniden numaralandırın

Misal

010 YORUM LYRA FORET TARAFINDAN IT020 YORUMUNDA "F" VEYA "G" İSE BİR SÖZCÜK BULUN 19 EKİM 1971030 YORUM 040 YORUM BAZI TEST DAVALARI FOX, GOPHER, RAT, DOG, CAT050 YORUMU AŞIRI CEVAPLAR EVET OLMALIDIR, EVET , HAYIR, EVET, NO. 060 YORUM 070 YORUM "KÖPEK" 080 YORUM ALIN TEXT090'DAN BİR MEKTUP ALIN WORD110'UN SONUNU GÖSTEREN BOŞ BİR YORUM KONTROLÜ ALIN "" F'S OR G'S130 İÇİN 500120 YORUM KONTROLÜNE ATLA EĞER 200140'A "F" ATLIYORSA 200150'YE "G" ATLAYORSA BAŞKA BİR HARF OLDUĞUNDA, SONRAKİ KARAKTERE GEÇİN. TEXT160 ATLAMASINDA 080200 YAZDIRIN "SÖZCÜKTE" F "VEYA" G "YAZDIR. 210 YORUM YAPILDI220 STOP500 YAZDIR" SÖZCÜKTE "F" VEYA "G" YOKTUR. "

Referanslar

Alıntılar

  1. ^ Raskin 1974, s. 231.
  2. ^ Raskin 1974, s. 232.
  3. ^ a b Lewis ve Norman 2014, s. 691.
  4. ^ Raskin 1974, s. 233.
  5. ^ a b c d e Raskin 1974, s. 234.
  6. ^ a b Raskin 1974, s. 237.
  7. ^ Raskin 1974, s. 235.
  8. ^ Raskin 1974.

Kaynakça

  • Raskin, Jef (Temmuz 1974). "AKIŞ: Beşeri Bilimlerde Bilgisayar Programlama için Öğretim Dili". Bilgisayarlar ve Beşeri Bilimler. 8 (4): 231–237. doi:10.1007 / BF02402344. S2CID  62648997.CS1 bakimi: ref = harv (bağlantı)
  • Lewis, Clayton; Norman, Donald (2014). "Hata İçin Tasarım". Baecker, Ronald (ed.). İnsan-Bilgisayar Etkileşiminde Okumalar: 2000 Yılına Doğru. Elsevier. s. 686–697. ISBN  9780080515748.CS1 bakimi: ref = harv (bağlantı)

daha fazla okuma

Dış bağlantılar

  • Akış, LISP'de modern bir FLOW uygulaması