İkili yeniden derleyici - Binary recompiler

Bir ikili yeniden derleyici bir derleyici bu alır çalıştırılabilir ikili dosyalar girdi olarak, yapılarını analiz eder, dönüşümleri ve optimizasyonları uygular ve yeni optimize edilmiş çalıştırılabilir ikili dosyalar çıkarır.[1]

İkili yeniden derleme kavramlarının temeli, Gary Kildall[2][3][4][5][6][7][8] optimizasyonun gelişmesiyle birlikte montaj kodu çevirmeni XLT86 1981'de.[4][9][10][11]

Ayrıca bakınız

Referanslar

  1. ^ Mudge Trevor; Reinhardt, Steve; Tyson, Gary. "İkili Yeniden Derleme ve Birleşik Derleyici / Mimari Geliştirme Çalışmaları". umich.edu. Michigan üniversitesi (UM). Arşivlenen orijinal 2012-07-23 tarihinde. Alındı 2012-07-23.
  2. ^ Kildall, Gary Arlen (Mayıs 1972). Derleme sırasında genel ifade optimizasyonu (Doktora tez çalışması). Seattle, Washington, ABD: Washington Üniversitesi, Bilgisayar Bilimleri Grubu. 20506, Teknik Rapor No. 72-06-02.
  3. ^ Kildall, Gary Arlen (1973-10-01). "Küresel Program Optimizasyonuna Birleşik Yaklaşım" (PDF). 1. Yıllık ACM SIGACT-SIGPLAN Programlama Dilleri İlkeleri (POPL) Sempozyumu Bildirileri. POPL '73. Boston, Massachusetts, ABD: 194–206. doi:10.1145/512927.512945. hdl:10945/42162. S2CID  10219496. Arşivlendi (PDF) 2017-06-29 tarihinde orjinalinden. Alındı 2006-11-20. ([1] )
  4. ^ a b Freiberger, Paul (1981-10-19). "Program çevirmenleri bunu harfi harfine ve bazen bağlam içinde yapıyor". InfoWorld - Mikrobilgisayar Kullanıcıları İçin Haberler. Özel bölüm: Bilgisayar uyumluluğu. 3 (22). Popular Computing, Inc. s. 19. ISSN  0199-6649. Alındı 2020-01-15. […] "Hedef mikroişlemcinin kendine özgü özelliklerini hesaba katan bir çeviri şemanız yoksa, otomatik bir çevirmenin çalışmasının hiçbir yolu yoktur" diye açıklıyor programcı Daniel Davis Dijital Araştırma. "Direkt olacaksın harf çevirisi. "[…] Tüm bu sınırlamalara rağmen, son zamanlarda çevirmenlerin geliştirilmesinde ilerleme kaydedildi. En önemlisi, Digital Research, sekiz ila 16 bitlik derleme kod çeviricisini tanıttı. Digital Research başkanı tarafından yapılan araştırmaya dayanarak Gary Kildall, XLT86 daha önce mevcut olan yazılım çevirmen teknolojisine göre gelişmeler sunuyor gibi görünüyor. Sevmek Sorcim 's Trans ve Intel 's Dönüştür 86 Kildall'ın paketi, montaj dili kodunu bir 8080 mikroişlemci 8086. Ancak, Kildall bir küresel akış analizi diğer çevirmenlerin bazı önemli dezavantajlarını hesaba katan teknik. Prosedür, ortadan kaldırmak için 8080 kodunun bölümlerindeki kayıt ve bayrak kullanımını analiz eder. gereksiz kod. Dijital Araştırma programcısı Davis'e göre, Kildall'ın kullandığı algoritma, çevirmenin programı çevirirken bağlamı dikkate almasına izin veriyor. Şimdiye kadar, herhangi bir çevirmen programındaki en büyük sorunlardan biri, yazılımın çeviriden çok daha fazlasını yapamamasıydı. Digital Research'ün yeni tercümanı, teknolojiyi bağlamın dikkate alınabileceği noktaya kadar ilerletirse, mikro bilgisayar pazarında daha fazla yazılım tercümanı çoğalabilir.
  5. ^ Wharton, John Harrison (1994-08-01). "Gary Kildall, endüstri öncüsü, 52 yaşında öldü: ilk mikro bilgisayar dillerini, disk işletim sistemlerini yarattı". Mikroişlemci Raporu. MicroDesign Resources Inc. (MDR). 8 (10). Arşivlendi 2016-11-18 tarihinde orjinalinden. Alındı 2016-11-18.
  6. ^ "Dr. Gary A. Kildall'a SPA Ödülü: 1995 SPA Yaşam Boyu Başarı Ödülü Sahibi". Yazılım Yayıncıları Derneği (SPA). 1995-03-13. Arşivlendi 2019-12-21 tarihinde orjinalinden. Alındı 2019-12-21 - www.digitalresearch.biz aracılığıyla.
  7. ^ Swaine, Michael (1997-04-01). "Gary Kildall ve Meslektaş Girişimcilik". Dr. Dobb's Journal. Arşivlenen orijinal 2007-01-24 tarihinde. Alındı 2006-11-20. Mart 1995'te Yazılım Yayıncıları Derneği ölümünden sonra onurlandırıldı Gary bilgisayar endüstrisine yaptığı katkılardan dolayı. Başarılarından bazılarını sıraladılar: […] 1980'lerde DRI, bir ikili yeniden derleyici tanıttı. […]
  8. ^ Huitt, Robert; Eubanks, Gordon; Rolander, Thomas "Tom" Alan; Kanunlar, David; Michel, Howard E .; Halla, Brian; Wharton, John Harrison; Berg, Brian; Su, Weilian; Kildall, Scott; Kampe, Bill (2014-04-25). Yasalar, David (ed.). "Gary Kildall'ın Mirası: CP / M IEEE Dönüm Noktası Adanmışlığı" (PDF) (video transscription). Pacific Grove, Kaliforniya, ABD: Bilgisayar Tarihi Müzesi. CHM Referans numarası: X7170.2014. Alındı 2020-01-19. […] Rolander: Daha önce bahsetmiştim Gary bir soruna mimar olarak yaklaşmayı severdi. […] Ve veri yapılarının en güzel resimlerini çizerdi. […] Ve bunu bitirdiğinde […] ve bu veri yapılarının artık doğru olduğuna ikna olduğunda, inanılmaz bir manik kodlama moduna girecekti. Günde 20 saate kadar giderdi […] bu dönemlerde gitmişti. Bu tür birkaç olayda, ilk seferinde bir şeyler çalıştırdığı zaman, ki bu gece yarısı olabilir. Ve yazılım yazmış olanların hepsi, örneğin ekrana ilk geldiğinde bunu birilerine söylemek zorunda olduğunuzu gördünüz. Karım Lori, gecenin bir yarısı bu telefon görüşmelerinden birkaç tanesine sahip olduğumu söyleyecek. LOGO bir örnekti XLT 86 ilk seferinde çalıştırdığı başka biriydi ve birisinin görmesi gerekiyordu. Bu yüzden saat kaç olursa olsun beni arardı, gelip onun işlediğini görmem gerekirdi. […] [2][3] (33 sayfa)
  9. ^ Barry, Tim (1982-04-05). "XLT-86, Digital Research tarafından hazırlanmış bir CP / M yardımcı programı". InfoWorld - Mikrobilgisayar Kullanıcıları için Newsweekly. InfoWorld Yazılım İncelemesi. 4 (13). Popular Computing, Inc. sayfa 40–41, 53. ISSN  0199-6649. Alındı 2020-01-25. […] XLT-86 bir analitik çevirmen programıdır. PL / I-80. Tamamını okur 8080 kaynak program, onu bir araya getirir makine kodu, kayıt, bellek ve bayrak kullanımını analiz eder ve optimize edilmiş bir 8086 montaj dili programı. […] Program çevirisi beş aşamalı bir süreçte ilerler. Öncelikle program taranır ve bir araya getirilerek sembol değerleri ve konumlar oluşturulur. İkincisi, program yapısı analiz edilir ve ayrıştırılır. temel bloklar. Üçüncü olarak, temel bloklar analiz edilir. program akışı ve kaynak kullanımı. İleri, blok yapısı ve kayıt tahsisi veriler, kullanıcı için bir liste halinde toplanır. Beşincisi, akış bilgisi ve kaynak programı 8086 kaynak programını üretmek için kullanılır. […]
  10. ^ Kildall, Gary Arlen (1982-04-19). Swaine, Michael; Freiberger, Paul; Markoff, John Gregory (eds.). "Dijital Araştırma kurucusu, işletmeye bakışını tartışıyor". InfoWorld - Mikrobilgisayar Kullanıcıları için Newsweekly. Özel bölüm: CP / M. 4 (15). Popular Computing, Inc. s. 23–24. ISSN  0199-6649. Alındı 2020-01-17. […] Kildall: […] Bir buçuk yıl önce muhtemelen zamanımın% 75'ini işe ve% 25'ini programlamaya harcıyordum. XLT-86 o zamanlar üzerinde çalıştığım bir üründü ve bunu yapmam dokuz ayımı aldı. Konsantre olsaydım bu üç aylık bir proje olurdu. […]
  11. ^ Kildall, Gary Arlen (Haziran-Temmuz 1982). Bunnell, David Hugh; Edlin, Jim (editörler). "Gary Kildall - CP / M'yi Oluşturan Adam: CP / M'nin Yaratıcısı - Yazılım Öncüsü Gary Kildall ile Bağımsız Bir PC'ye Özel Röportaj". PC Magazine. İşletim sistemleri. Cilt 1 hayır. 3. Software Communications, Inc. s. 32–38, 40. Alındı 2020-01-17. […] PC: Bir programın kaynak kodundan çevrilmesiyle ilgili bazı karmaşıklıklar nelerdir? 8080 -e 8086 form? Kildall: Düz kaynak program düzeyinde çeviriler hemen hemen mekanik olarak yapabilirsiniz. Örneğin, bir 8080 "Hemen 5 ekle" talimatı 8086'da "AL 5 Ekle" ye dönüşür - işlem kodlarının kendilerinin çok basit çevirisi. Karmaşıklık mekanik çeviri aşağıdaki gibi durumlardan gelir: 8080 komutu DAD H, HL kaydını alır ve buna DE ekler. 8086 için eşdeğer talimat ADD DX BX gibi bir şey olurdu, bu iyi, özel bir sorun değil. Sadece DX kaydının HL ve BX ile aynı olduğunu ve DE ile aynı olduğunu söylüyorsunuz. Sorun, 8086 komutunun sıfır bayrağını ayarlama yan etkisine sahip olması ve 8080 komutunun olmamasıdır. Mekanik çeviride bayrakları kurtarmak, bayrakları geri yüklemek, bazı vardiya ve döndürmeler yapmak gibi bir şey yaparsınız. Bunlar, aynı anlamsal etkiyi elde etmek için yaklaşık beş veya altı ekstra talimat ekler. 8080 kodunda, 8086 kodunda çok garip diziler üreten birçok dizi vardır; bayrak kayıtları ve bu tür şeyler yüzünden çok iyi haritalama yapmıyorlar. Yazılımın üstesinden gelme şeklimiz, XLT-86. Altı aydır falan oldu. PC: "Daha iyi" kodla daha küçük mü demek istiyorsunuz? Kildall: Her işlem kodunu alıp, anlamsallığı korumak için kayıtları kaydettiğinizden yüzde yirmi daha küçük. PC: Çevrilen programın boyutu 8080 sürümüyle karşılaştırıldığında nasıldır? Kildall: Bir 8080 programını alırsanız, onu 86 karaya taşıyın ve bir XLT-86 çevirisi yapın, kabaca yüzde 10 ila 20 daha büyük olduğunu göreceksiniz. 16 bit makinelerde her şeyi ele almak daha zordur; ortalama olarak biraz daha büyük olan işlem kodları alırsınız. İlginç bir fenomen, 16 bitlik dünyada muazzam bir hız artışı elde etmemenizin nedenlerinden biri, veri yolu üzerinden daha fazla işlem kodu çalıştırmanızdır. […]