Doğal Dil Kullanarak Bilgisayar Programlama
Edmund C. Berkeley, Casper Otten, Eric Albert ve Steve Emmerich
Berkeley Enterprises, Inc.
815 Washington St.
Newtonville, Mass. 02160
Bu, bilgisayarımızda çalışan bir bilgisayar programları sistemi hakkında kısa bir rapordur; bilgisayarımız Digital Computer Corp. tarafından üretilmiş bir PDP-9’dur. Bu bilgisayar programları sistemine GENIE adını veriyoruz.
Aşağıda GENIE’nin bir akış şeması yer almaktadır.
Bir Problem Sınıfı İçin
BİRİNCİ GİRDİ:
Bir yöneticiden bir memura, sıradan doğal dilde ifade edilmiş bir hesaplama için talimatlar.
İKİNCİ GİRDİ:
Hesaplamanın bir veya daha fazla çözümlü örneği; tercihen en az iki tane.
ÜÇÜNCÜ GİRDİ:
Hesaplama düzeni sayfası, rapor düzeni sayfası vb.
KARA KUTU:
GENIE adı verilen ve aşağıdakini üreten otomatik bir bilgisayar programı:
ÇIKTI:
Hesaplanan problem sınıfına ilişkin bir veri kümesini alan ve istenen yanıtlar kümesini veren bir bilgisayar programı.
Birinci girdiye Statement Analyzer adı verilir.
İkinci girdiye Worked Example Analyzer adı verilir.
Üçüncü girdiye Layout Analyzer adı verilir.
Kara Kutuya Program Maker adı verilir; şu anda COBOL, FORTRAN, Dartmouth BASIC, Business BASIC, FOCAL, APL ve PDP-9 makine dili için yedi adet program yapıcı bulunmaktadır.
Somut bir örneği ele alalım; "Wage Report" adını vereceğimiz basit problemlerden oluşan bir sınıf. Bir görsel ve sayısal örnek Tablo 1’de gösterilmektedir.
Tablo 2’de bir dizi talimat ya da ifade ve ardından ikinci bir talimat dizisi yer almaktadır; bunlar Statement Analyzer için alternatif girdilerdir. Elbette bunun yerine yüz binlerce başka talimat dizisi de kullanılabilir.
Tablo 3, Worked Example Analyzer için girdiyi göstermektedir. Bu durumda Layout Analyzer için herhangi bir girdi gerekmemektedir.
Tablo 4’ten Tablo 9’a kadar, GENIE sistemi tarafından otomatik olarak üretilmiş programlar gösterilmektedir. Bunlar altı programlama dilindedir: FORTRAN, Dartmouth BASIC, Business BASIC (BASIC/Four bilgisayarı için), APL, FOCAL ve COBOL. PDP-9 makine dilinde otomatik olarak üretilmiş program bu makalede sunulamayacak kadar uzundur.
Kısa Bir Rapor, 1976
"Birçok insan, bir bilgisayara ne yapmasını istediklerini söyleyebilmek için artık BASIC ya da FORTRAN ya da COBOL ya da başka herhangi bir yapay programlama dilini öğrenmek zorunda kalmayacak."
Bazı Sorular ve Yanıtlar
S: Üretilen programlar bazı farklılıklar gösteriyor; yani hepsi tam olarak aynı sonuçları vermiyor. Neden?
Y: Doğru. Farklı zamanlarda tamamlandılar ve tüm program yapıcıların tam olarak aynı sonuçları vermesi için değişiklik yapılması, diğer bazı görevlerden daha az önemli görünüyordu.
S: Statement Analyzer, yapılacak işi ifade eden her talimat kümesini anlayacak mı?
Y: Talimat kümesi sıradan doğal dildeyse, bir memur için açık ve belirsizlik içermiyorsa ve "Başlık adlarını parantez veya tırnak içine koyun" gibi birkaç basit kurala uyuyorsa, evet.
S: Sistem IF, GO TO, tablolarda ve dosyalarda arama vb. işlemleri ele alabiliyor mu?
Y: Evet, elbette.
S: Sıradan doğal dili kullanarak bilgisayar programlama yaygınlaşırsa, insan programcılara artık ihtiyaç olacak mı?
Y: Birçok insan, bir bilgisayara ne yapmasını istediklerini söylemek için BASIC ya da FORTRAN ya da COBOL ya da başka herhangi bir yapay programlama dilini öğrenmek zorunda kalmayacak. Ancak algoritmalar geliştirmek gibi bazı görevler için insan programcılara hâlâ ihtiyaç olacaktır.
S: Daha fazla bilgiyi nasıl edinebilirim?
Y: Antetli kâğıdınızla bize yazın. Yanıtlamaya çalışacağız.
Tablo 1: Ücret Raporu Görseli ve Sayısal Örnek
Sabitler
| Öğe | Açıklama | Değer |
|---|---|---|
| (1) | Sosyal Güvenlik Aidat Tutarı | 3.00 |
| (2) | Gelir Vergisi Muafiyeti | 150.00 |
| (3) | Gelir Vergisi Oranı | 0.11 |
| (4) | Sosyal Güvenlik Katkı Oranı | 0.0585 |
Veriler ve Hesaplamalar
| Öğe | Açıklama | Formül | Değer |
|---|---|---|---|
| (5) | Brüt Gelir | DATA | 200.00 |
| (6) | Vergilendirilebilir Gelir | (5) − (2) | 50.00 |
| (7) | Federal Gelir Vergisi | (6) × (3) | 5.50 |
| (8) | Sigorta Katkısı (FICA) | (5) × (4) | 11.70 |
| (9) | InterClub Kesintisi | (1) | 3.00 |
| (10) | Ara Toplam | (7) + (8) | 17.20 |
| (11) | Toplam Kesintiler | (10) + (9) | 20.20 |
| (12) | Net Ücret | (5) − (11) | 179.80 |
Tablo 2: Statement Analyzer için Girdi — İki Alternatif
Alternatif 1
BU PROGRAMA WAGE-REPORT ADINI VERİN.
ÖĞE 1’E (DUES AMT) 3.00 KOYUN.
ÖĞE 2’YE (TAX BASE) 150.00 KOYUN.
ÖĞE 3’E (TAX RATE) 0.1100 KOYUN.
ÖĞE 4’E (SS RATE) 0.0585 KOYUN.
BİR VERİ ÖĞESİ ALIN VE BUNA ÖĞE 5 (GROSS PAY) ADINI VERİN.
ÖĞE 2’Yİ ÖĞE 5’TEN ÇIKARIN VE BU SONUCU ÖĞE 6’YA (TAXABLE INCOME) KOYUN.
ÖĞE 3 İLE ÖĞE 6’NIN ÇARPIMI ÖĞE 7’Yİ (INCOME TAX) VERİR.
ÖĞE 5 İLE ÖĞE 4’ÜN ÇARPIMI ÖĞE 8’DİR (FICA).
ÖĞE 1’İ ÖĞE 9’A TAŞIYIN (CLUB).
ÖĞE 10, ÖĞE 7 İLE ÖĞE 8’İN TOPLAMIDIR.
ÖĞE 10 ARTI ÖĞE 9, ÖĞE 11’DİR (DEDUCTIONS).
ÖĞE 11 İLE ÖĞE 5 ARASINDAKİ FARK ÖĞE 12’YE (NET PAY) EŞİTTİR.
Alternatif 2
BU PROGRAMIN ADI WAGE-REPORT’TUR.
ÖĞE 1’E (DUES AMT) 3.00 GİRİN.
ÖĞE 2’YE (TAX BASE) 150.00 KOYUN.
0.1100 DEĞERİNİ ÖĞE 3’E TAŞIYIN (TAX RATE).
ÖĞE 4’E (SS RATE) 0.0585 GİRİN.
VERİYİ ÖĞE 5’E KOYUN (GROSS PAY).
ÖĞE 5 EKSİ ÖĞE 2, ÖĞE 6’DIR (TAXABLE INCOME).
ÖĞE 3 İLE ÖĞE 6’NIN ÇARPIMI ÖĞE 7’Yİ (INCOME TAX) VERİR.
ÖĞE 5 ÇARP ÖĞE 4, ÖĞE 8’DİR (FICA).
ÖĞE 1’İ ÖĞE 9’DA SAKLAYIN (CLUB).
ÖĞE 7 ARTI ÖĞE 8, ÖĞE 10’A EŞİTTİR.
ÖĞE 10’U ÖĞE 9’A EKLEYEREK ÖĞE 11’İ ELDE EDİN (DEDUCTIONS).
ÖĞE 5 EKSİ ÖĞE 11, ÖĞE 12’YE (NET PAY) EŞİTTİR.
Tablo 3: Worked Example Analyzer için Girdi
| Öğe | Örnek Değerler | Açıklama |
|---|---|---|
| (1) | 3.00 | Aidat Tutarı |
| (2) | 150.00 | Vergi Matrahı |
| (3) | 0.11 | Vergi Oranı |
| (4) | 0.0585 | SS Oranı |
| (5) | 200.00, 222.22 | Brüt Ücret |
| (6) | 50.00, 72.22 | Vergilendirilebilir Gelir |
| (7) | 5.50, 7.94 | Gelir Vergisi |
| (8) | 11.70, 13.00 | FICA |
| (9) | 3.00 | Kulüp Kesintisi |
| (10) | 17.20, 20.94 | Ara Toplam |
| (11) | 20.20, 23.94 | Toplam Kesintiler |
| (12) | 179.80, 198.28 | Net Ücret |