Soru Neden hat numaralarıyla uğraştık? [kapalı]


BASIC içinde bir şey yazdığınızda, satır numaralarını kullanmanız gerekir. Sevmek:

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10

Ama merak ediyorum: hat numaralarını kullanma fikri kim çıktı? Bu bir baş belasıdır ve gelişmekte olan dünyada (dile getirilen) oldukça “yankı” bıraktı!


36
2018-02-12 14:18


Menşei


Harika ekran adı, remco! Baş aşağı karakterleri seviyorum - David Koelle
Evet, baş aşağı göstermek için ismini nasıl aldın? - gnovice
@gnovice: diğer karakterler gibi görünen unicode karakterleri kullanarak yapılır. Görmek revfad.com/flip.html Örneğin. - Joachim Sauer
@DavidD, gnovice: Bazı özel unicode karakterleri kullanır, bkz. Www.flipmytext.com - oɔɯǝɹ
İşte nedeni: youtu.be/OFUHjDhTIJg?t=18m45s - Koray Tugay


Cevaplar:


Buradaki fikir, uygun satır numarasını kullanarak programınızın her yerine kolayca kod ekleyebileceğiniz fikriydi. Bu yüzden herkes 10, 20, 30 numaralarını kullanır.

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10
25 PRINT "HOME"

BASIC'in ilk arayüzlerinde, parlak bir editör yoktu, vi veya emacs gibi bir şey bile yoktu (veya DOS edit, heh). Programınızı yalnızca konsolda yazdırabilir ve daha sonra uygun satır numarasını vererek yeni satırlar ekleyebilir veya bunları değiştirebilirsiniz. Günümüzde kullandığınız gibi imleci kullanarak "dosya" (program diskte saklanmış olsa da, bellekte saklanmış) arasında gezinemediniz.

Bu nedenle, satır numaraları sadece rezil GOTO için etiket olarak değil, tercümana program akışında hangi konumda düzenlediğinizi söylemeniz gerekti.


68
2018-02-12 14:23



Aslında programlamayı öğrendim - yeniden yazarak düzenleme. - StuffMaster
Bu, ailem AT & T PC6300 üzerinde GW-BASIC uygulamaları yazma anılarını getiriyor ... - J. Polfer
Hatları yeniden sıralamanın (Commodore PET'de) hiçbir yolu olmadığında 24 ve 25 satır arasında bir çizgi eklemeyi bekleyen oldukça büyük problemi hatırlıyorum. - e100
Tanımladığınız arayüze sahip olan Acorn elektronuna BASIC'yi öğrendim ve bunu tamamen unutmuştum! Anılar için +1! - Joseph Rogers
Bu kullanıldı kod golf - phuclv


Loong-loong geçmişi vardır.

Hat numaralandırma aslında BASIC programlama dilinin orijinal versiyonu olan Dartmouth BASIC'den geliyor ve Dartmouth Zaman Paylaşımı Sisteminin ayrılmaz bir parçasıydı. DTSS'nin etkileşimli bir komut satırından başka bir şey olmayan temel bir IDE'si vardı.

Dolayısıyla, bu "IDE" içine yazılan ve bir satır numarasıyla başlayan her satır, daha önce depolanmış herhangi bir satırın aynı numarayla değiştirilmesi programa eklenmiştir; Başka bir şey bir DTSS komutu olarak kabul edildi ve hemen uygulandı.


41
2018-02-12 14:24



+1 - bu doğru cevaptır. Hat düzenleyicinin ve aynı ortamda anında yürütmenin bir araya gelmesi muhtemelen BASIC'in en önemli katkısıydı. - Jules


VDT (video ekran terminali) gibi bir şey olmadan önce, eski zamanlayıcılar punch kartlarında programladık. Punch kartları, sıra numaraları için 72-80 sütunları ayırdı - kart destenizi düşürdüyseniz ve hepsi düzensizse, desteyi kart sıralayıcılarına, bu sıra numaralarına göre sıralayabilen bir kart sıralayıcıya koyabilirsiniz. Birçok yönden, BASIC satır numaraları bu sıra numaralarına benziyordu.

BASIC dünyasında bir diğer avantaj ise eski günlerde BASIC'in çalıştırıldığı gibi yorumlanmasıydı. Dallar için sıralı satır numaraları yerine etiket kullanmak, tüm etiketleri ve bunların yerlerini almak için ilk geçişi gerektirir; burada satır numaralarını kullanıyormuşsunuz gibi, tercüman hedef için ileriye veya geriye doğru taramaya başlamanın gerekip gerekmediğini bilir.


40
2018-02-12 14:28



Bu tek doğru cevap! - cwallenpoole
Bu alakasız değil, tarih. Aileni alakasız görüyor musun, çünkü sen değilsin? - Paul Tomblin
1970'lerde BASIC etraftaydı ... ve temel uygulamalarla beslenen punchcard vardı. Çocukken, bazı BASIC de dahil olmak üzere, D & D satın alma paramı, CS majörlerine para kazandım. - aramis
Kabul ediyorum. Bu kesinlikle yumruk kartlarının zihniyetinden bir bağ oldu. Ayrıca, çoğu ev bilgisayarında temel olarak (Apple, Commodore, vb.) Temel hat numarası olduğu için çok yaygın hale geldi. İlginç bir şekilde, bu da programlarınızı sıralı olmayan şekilde girebilmenizi sağladı; bu da sınırlı düzenleyici kabiliyetlerine yardımcı oldu. BASIC'de yazdığım ilk şeylerden biri, bir metin düzenleme programıydı. Ama Uzamış BASIC ile elimde bir Vax'i elime alır almaz, bir daha asla bir çizgi numarası görmekten çok mutlu oldum. - Swanny
Ayrıca, BASIC başlangıçta bir derleyici olarak değil, bir yorumlayıcı (birçok LISP uygulamasının uygulamadan önce girişteki her bir ifadeyi derlemesine benzer şekilde) olarak uygulanmıştır, böylece tercüman içselleri de ilgisizdir. - Jules


Gün içinde, emacs veya vi gibi 2 boyutlu bir editörünüz olmadı. Tek sahip olduğun komut satırıydı.

Programınız bellekte saklandı ve tek satırları düzenlemek için tek satırlı komutlar yazacaksınız.

Eğer bir Unix tanrısı olsaydınız ed veya başka bir şeyle yapabilirsiniz, ancak bir C-64, VIC-20 veya TRS-80'de BASIC için çizginin üzerine yazmış olursunuz.

Yani bir oturum şöyle görünebilir:

$10 PRINT "Hellow World"
$20 GOTO 10
$10 PRINT "Hello World"

Ve şimdi program düzgün çalışacak.

Bazı eski ana bilgisayarlar bile ekransız hat terminallerine sahipti. Tüm oturumunuz yazdırıldı kâğıt içinde mürekkep!


17
2018-02-12 14:25





"Kim?" Mucitler, Kemeney ve Kurtz olurdu.

Cevapları okuduktan sonra Wikipedia girişi "Dartmouth BASIC" için ve öğrenmek için şaşırdı

İlk derleyici, zaman paylaşım sistemi hazır olmadan üretildi. CardBASIC olarak bilinen, standart kart okuyucu tabanlı parti işleme sistemi için tasarlanmıştır.

Yani, Paul Tomblin'in "kareyi alması" gibi görünüyor.


8
2018-03-07 18:56



Lisede, Dartmouth'un bilgisayarını aramamıza ve bu merakı ilk elden deneyimlememize izin veren bir "modem" vardı. - gbarry
Bu, bir dil olarak tasarlanan bir prototipti, dilin tasarlandığı teletip tabanlı arayüz hala geliştiriliyordu. Her iki şekilde de doğrudan bir kanıta sahip olmamakla birlikte, (a) bu ilk sürümün zorunlu satır numaralandırmasına (Fortran gibi) sahip olmaması veya (b) program düzenlemeyi anında yürütme yerine sağlamak için satır numaralarının kullanılması zaten oldu planlandı. - Jules


BASIC'in türetildiği FORTRAN'dan kaynaklandılar. Ancak, FORTRAN'da sadece diğer hatlarla (GOTO hedefleri gibi) referans verilen çizgiler sayılara ihtiyaç duyuyordu. BASIC'de, belirli hatların düzenlenmesini sağlayan ikincil bir kullanım vardı.


6
2018-02-12 14:23



Ayrıca, FORTRAN satır numaraları, rakamlardan ziyade sayısal etiketlere benzerdi. - David Thornley


Paul Tomblin'in cevabı en kapsamlı olanıydı, fakat şaşırmadım ki hiç kimse BASIC projesinin ilk hedefinin büyük bir kısmının acemi dostu zaman paylaşımı kullanarak etkileşimli ortam. (Kurtz ve Kemeny'nin "tüm öğrenciler için evrensel erişim" vizyonu, bu konudaki zamanının çok ötesindedir.)

Bu hedefi yerine getirmek için geliştirilen BASIC sistemi, Teletype ASR-33 (ve daha sonra diğer) baskı terminallerine sahipti. Zaman paylaşımı özellikli bir işletim sistemine bağlandığında, bu izin verilen BASIC programlarını etkileşimli bir modda (delikli kartlarla çalışmanın aksine) düzenleyebilir ve çalıştırabilir, ancak bunlar imleç adreslenebilir değildir. Satır numaraları, program deyimlerinin sırasını belirtmek ve bir ekran editörü yokluğunda net olmayan düzenlemeye izin vermek için başlangıç ​​dostu bir yoldu. "Çizgi editörü" için Vikipedi girişi daha fazla açıklıyor ve bir çizgi editörü (Un * x 'ed' gibi) kullanmaya çalışmış olan herkes, Kurtz ve Kemeny'nin yeni başlayanı şifreli öğrenmek zorunda bıraktığı için neden teşekkür edilmesini takdir edebilir. Bu şekilde metin düzenlemek için gerekli komut dizileri.


6
2018-03-31 19:59



Ve şimdi hakkımızda (2014 başlarında) BASIC'in 50. yıl dönümü! - Phil Perry