Ayrıntıları çok miktarda metin kullanma eğilimi, ve çok az metin kullanmanın tersliği ...
Ayrıntı kötüdür çünkü:
- yazım hatası için daha fazla fırsat sunar
- Ekranda veya kağıda kod okumayı ve / veya delikli kartı girmeyi zorlaştırır
- bu hata ayıklama sürelerini artırır
- bu yükseltme / bakım için kodun anlaşılmasını zorlaştırır
- bu istenmeyen kod çoğaltmasına neden olabilir
- biraz sözdizimi hatası olasılığını artırır
- kodlama esnekliğini azaltır, bu nedenle, çoğu ayrıntılı diller yüksek düzeyde yapılandırılmıştır ve aynı şeyi söylemenin birden fazla yolu yoktur.
- kodlama ve derleme sürelerini arttırır
- daha fazla depolama alanı alabilir.
Belli bir ayrıntı seviyesi açıklık için şarttır, ancak ...
asgari düzeyde bir Verbosity seviyesi iyidir çünkü:
- insanlar için semantik değer okumak ve eklemek sadece sembolik kodlardan daha kolaydır.
- Değişken ve işlev adlandırmada, hata ayıklamayı, bağlantı kurmayı ve kodu korumayı kolaylaştırır
- temel düzeyde dil işlemlerinde ve karmaşık dillerin anahtar kelimelerinde, daha az hatalı işlem / anahtar kelime atamasıyla sonuçlanır.
Birçok insan için aşırı kısa ve öz komutların güzel örnekleri eski TEMEL standbys içerir val(x$)
, str$(x)
ve chr$(x)
..., dize gösterimine bir sayı döndürür bir dizi için bir dize döndürür ve bir dize olarak tek bir karakter olan ASCII değeri x dönün.
Veya C / C ++ işaretçisi ve başvuru işleçleri &
ile *
BASIC byref
anahtar sözcüğü. C / C ++ 'da X değişkenine sahip olabilirim ve bu değişkene bir işaretçi geçiririm, ama hangisinin işaretçi olduğunu ve "işaretçi değişkeni olarak gösterici kullan" dır; temelde referansı fonksiyon çağrısında bir byref anahtar kelimesi ile iletiyorum, bu daha net fakat daha az esnek:
def fn Foo(x byref as float) foo= (x += x+1)
...
Foo(x)
Bu kodda, x'in içeriği bayrağın bayrağından dolayı değiştirilir. Bazı tatlar, bazıları açıkta, bazıları tanımda, çağrıda bulunmalarına izin verir.
Ayrıntı programcıların sembolizmi daha kolay kullanabilmeleri için ayrıntı vermesi önemlidir; BASIC veya python, insan tarafından okunabilir ve C / C ++ 'dan daha ayrıntılı ve bu nedenle sıradan programcılar için çok daha kullanışlı; C / C ++ 'ın netliği, bir ekranda daha fazla kod ve daha karmaşık kod görmesi gereken ancak çeşitli sembolik yapı kurallarını öğrenmek zorunda olan daha deneyimli programcılar için çok daha iyi hale getirir. En sonunda, neredeyse tamamen insan tarafından okunamayan bir APL var.
Çok yakından ilişkili bir konu netliktir - kısa kod genellikle belirsizdir ve aşırı ayrıntılı kod (AppleScript'te olduğu gibi) eşit derecede açık olabilir. Belirli bir dile aşinalık, bu dilde kısa kodun açıklığını arttırır - ham bir başlangıç, C ++ koduyla karşı karşıya kalmanın yalnızca formülleri ayrıştırması olasıdır ve çok işlevsel bir BASIC veya Python kodu anlama için çok kısa Genelde dil sözlüklerine başvurmadan şaşırmamak. Kasıtlı şaşırtmaca olmadan karşılaştığım en az açık olan Bilgilendir 7 ...
Eski günlerde
Geçmişte bir başka önemli husus, ancak hobi kodlayıcı için artık önemli olmayan bir şey, işletme ve depolama alanıdır. (En sonda hala hayati önem taşıyor.) Birçok dilin yorumlandığını, özellikle de BASIC lezzetlerinin ve birçoğunun çalışma zamanı derlendiğini, özellikle de yalnızca 128KiB diskler ve tek tek zımba kartlarının yalnızca 80B olduğu durumlarda, kod alanının önem arz ettiğini unutmayın.
Birkaç çözüm mevcuttu - tokenizasyon, BASIC'de oldukça yaygındı; Tek tek dilli anahtar kelimeler, üst 128 veya kontrol karakteri boşluğunda 1 veya 2 bayt kelimeye düşürüldü. Tokenizasyon ayrıca bytecode derlemesine de yol açar (Inform ve Z-Machine'de olduğu gibi).
Alan kısıtlamalarını aşmak için birden fazla nesne dosyası derleme ve bağlama da kullanılmıştır. Bir 100KiB Pascal kodu bölümü yalnızca 5KiB'ye derlenebilir; Birden fazla derlenmiş dosyayı birbirine bağlayarak, büyük formatlı sürücülere erişimi olmayan büyük uygulamalar geliştirilebilir (10MiB'nin şaşırtıcı derecede büyük olduğunu ve pahalı bir yeni araba satın aldığını unutmayın).
Bununla birlikte, daha kısa diller, hem disk hem de ram için belirli bir yığın halinde daha fazla kod aldı ve böylece bir seferde daha büyük parçaları derledi. Akılda tutulması: 1970'lerin başındaki "mini bilgisayarlar" yalnızca 64KiB koç olabilir (Honeywell 800, her biri 8B olan 2048 kelimeden oluşan 4 bankanın temel kurulumuna sahipti). APL ve benzeri sembolik diller, talimat başına 1B artı işlenenlerine, talimat başına daha büyük 3B-10B artı işlenenlere yaklaştı. (Özellikle semboller yazım topunda bir font olduğundan ve çoğu kartın tuşlarında sembollerin bulunmadığı için, delikli kartların üzerine yazmak kabusdu.)
Ayrıca, kartların silinemediğini ve kartlara birçok program girildiğini unutmayın. Bireysel olarak pahalı olmasa da, kodunuz kartta ne kadar sıkıştırılmış olursa, ne kadar az ihtiyaç duyarsanız ve programlar ne kadar büyükse veya o kadar az pahalı olabilir. Bu BASIC'in çoğu aromada satır başına çoklu komutların bir araya getirilmesinin nedeninin bir parçasıdır - delikli kartlardan tasarruf etmek için getirilmiştir. (Ya da Vax Basic programlama metnimi yazıyor.) Kart okuyucusu için programlamadığım halde, FORTRAN, BASIC, APL ve diğer birçok sembolik dilde bir Honeywell 800 için zımbalama kartı yaptım.