1 puan yazan GN⁺ 2024-07-19 | 1 yorum | WhatsApp'ta paylaş
  • AWK'in yaratıcısı Dr. Brian Kernighan ile kısa bir röportaj

    • Dr. Brian Kernighan'a giriş

      • Dr. Brian Kernighan, Bell Labs'ta UNIX'in geliştirilmesine katkıda bulunan Kanadalı bir bilgisayar bilimcisidir
      • Dennis Richie ile birlikte C programlama dili üzerine temel kitaplardan biri olan "The C Programming Language" kitabının ortak yazarıdır
      • 2000 yılından beri Princeton University'de yeni nesil programcılar yetiştirmektedir
      • İlk "Hello World!" programını yazan kişi olarak tanınır
    • AWK'nin yeni fikri

      • AWK'nin temel fikri ilişkilendirmeli dizilerdir (associative arrays)
      • O dönemde bu yeni bir kavramdı, ancak bugün çoğu dilde kütüphane işlevleri olarak (Java veya C++'ta hash map'ler) ya da dilin kendisinde (Perl ve Python'da dictionary'ler) kullanılmaktadır
      • İlişkilendirmeli diziler çok güçlü bir yapıdır ve çeşitli veri yapılarını simüle etmek için kullanılabilir
      • Pattern-action paradigması da o dönemde yaygın olarak kullanılmıyordu, ancak belirli hesaplamaları düzenlemek için etkili bir yöntemdir
    • Programlama dilini oluştururken başvurulan kaynaklar

      • Dr. Kernighan: "Yok"
      • 1970'lerde yeni özel amaçlı diller çok fazlaydı ve başvurulabilecek önceki kaynak neredeyse yoktu
      • Yacc, gramerleri kolayca oluşturup denemeyi mümkün kılan önemli bir araçtı
      • Lex, sözcüksel düzeyde aynı rolü üstlenerek birçok sıkıcı kodu bir kurallar kümesiyle değiştirdi
      • Lex ve Yacc, pattern-action dilinin örnekleriydi ve birbirlerini olumlu yönde besleyen bir döngü oluşturuyordu
    • Programlama dili tasarımıyla ilgilenen gençlere tavsiye

      • Küçük bir özel amaçlı dil tasarlayıp uygulamalarını tavsiye ediyor
      • Bunun çok eğlenceli ve faydalı olduğunu, ayrıca Rust ya da C++'a alternatif bir dil yapmaktan çok daha kolay olduğunu söylüyor
      • Otomatikleştirilebilecek bir iş bulunmasını ve buna uygun basit bir derleyici ile çalışma zamanı oluşturulmasını öneriyor
      • Jon Bentley'nin uzun zaman önce yazdığı ilgili bir makalenin hâlâ geçerli olduğunu belirtiyor
    • Görsel kaynağı

      • Wikimedia Commons

GN⁺ Özeti

  • Dr. Brian Kernighan, UNIX ve C dilinin geliştirilmesine katkıda bulunan önemli bir isimdir ve ilişkilendirmeli diziler ile pattern-action paradigmasını tanıtan AWK dilinin yaratıcısıdır
  • İlişkilendirmeli diziler, bugün çoğu programlama dilinde kullanılan güçlü bir veri yapısıdır
  • Genç programcılar için küçük özel amaçlı diller tasarlayıp uygulamak faydalıdır
  • Yacc ve Lex, gramer ve sözcüksel analizleri kolaylaştıran araçlardır ve pattern-action dilleri için iyi örneklerdir

1 yorum

 
GN⁺ 2024-07-19
Hacker News görüşleri
  • Brian Kernighan, 2000 yılında Princeton'ın CS bölümüne katıldı, ancak 1993'te Bell Labs Research'teyken zaten bir ders vermişti
  • Bir öğrenci derse 386sx dizüstü bilgisayarını (erken Linux çalıştıran) getirmiş ve awk hakkındaki bir soruya yanıt sağlamıştı. Brian, Linux ile nispeten erken tanışmıştı
  • Brian'ın, 1994 sonbaharında AT&T'nin ücretsiz telefon rehberini internete koyması hakkında bir yazısı var
  • Lex Fridman, Brian Kernighan ile bir buçuk saatlik bir röportaj yaptı
  • Aho ve Weinberger ile yapılan daha kapsamlı bir röportaj, "Masterminds of Programming" kitabında yer alıyor. Şiddetle tavsiye edilir
  • Bir zamanlar biri Usenet imzasına "perl margarin, awk ise tereyağıdır" diye yazmıştı. Perl'i keşfettikten sonra awk'ı daha az kullanmaya başladım
  • "The Unix Programming Environment" kitabını okuyorum. awk'ın günümüzde popüler olan dillerle (js, lua, python, perl, tcl) birçok benzer yanı var
  • Temmuz 1979 tarihli 7. Edition Unix sürümündeki awk, 2680 satır kaynak koddan oluşuyordu ve çalıştırılabilir dosyası 46k idi; pdp-11'in 64k adres alanında çalışıyordu. Kullanıcı tanımlı fonksiyonları yoktu
  • bc'de kullanıcı tanımlı fonksiyonlar vardı
  • 80'lerdeki bir Avustralya Unix konferansında Dr. Kernighan'ın imzaladığı bir K&R kitabına sahibim. Çok değerli bir koleksiyon parçası
  • O kitap, "The Practice of Programming" ve Byte dergisi gibi kaynaklar, 1980'lerin "Stack Overflow"u işlevini görüyordu
  • İlişkisel dizileri "newish" diye anması ilginç. Lisp'te bunlar neredeyse 20 yıl önce ortaya çıkmıştı
  • regex'ten lex, yacc ve awk'a uzanan geliştirme sırası oldukça ikna edici geliyor
  • Oldukça özlü
  • Awk'ın yaratıcısı: eğlenceli