Derleyici İşleri - Ne Kadar Eğitim Gerekli [kapalı]


15

Derleyici Yapı olarak Konu olarak motive oldum ve bunu soracağımı düşündüm.

Birkaç kişiden iyi bir "derleyici ekibi" olduklarını duydum (nerede duyduğumu sorma, hatırlayamıyorum), bu yüzden merak ettim, böyle bir ekipte nasıl iş bulabilirim ?

Lisans programlarında dersler olduğunu biliyorum, ama bu bir lisansüstü derecesi asgari bir şey (en azından bir Master gibi)?

Bilgisayar Bilimleri Yüksek Lisansımı iki ay içinde başlıyorum ve iki derleyici dersine sahip olacağım okulda derleyici geliştirme yapmak için yeterli bir iş mi yoksa buna daha fazla zaman ayırmak mı gerekiyor?


2
Açık kaynak kodlu bir derleyici projesine (ör. Llvm) katılım büyük bir avantaj olacaktır.
SK-logic

Ditta @ SK-Logic Şu anda IB CS finalim için bir derleyici yazıyorum. Derleyici yazma deneyimi elde etmek muhtemelen en iyi yoldur .... gerçekten her şeyde olduğu gibi.

1
Derleyiciler ve çalışma zamanlarının en büyük isimlerinden birinin derecesi olmadığını belirtmek isterim. Anders Hejlsberg ... Turbo Pascal'ın arkasındaki beyin, Delphi, C #, TypeScript
Matthew Whited

Yanıtlar:


17

Derleyici geliştirme ultra serttir, bu da çok fazla sabır, tutku ve sağlam bilgi gerektirdiği anlamına gelir. Sabır, tutku ve sağlam bilgiyi herhangi bir dereceye sahip olmakla karıştırmayın. strlen()Dört C kodu satırında bile tanıyamayan Master derecesine sahip birkaç başvuru sahibi gördük .

Kesinlikle bu derslere katılın ve pratik bilgi edinin. Belki derleyici geliştirmeyi bile sevmeyeceksiniz, ancak kazandığınız deneyim başka çok ilginç geliştirme işi almanıza yardımcı olacaktır.


cevap için teşekkürler. Kendi kendine öğretilen ve akademik CS geçmişi olmayan birine şans verir misiniz?
Jetti

3
MIT OCW'nin seyrini kontrol edin
segfault

3
@Jetti: Geçmişleri ne olursa olsun, açık kaynak kodlu bir derleyiciye yıllar boyunca önemli katkılarda bulunan herkese bir şans vereceğim :)
Matthieu M.

@Jetti: Kesinlikle bir kez gerçek bilgiye sahip olduklarını kanıtlarlar. Örneğin, bir derleyici optimize kod üreticisi için testler yazmışlarsa, muhtemelen ortalama bir üniversite mezunundan daha değerlidir.
sharptooth

Derleyici kendi dilinde yazıldığında daha da ilginçleşir.
ott--

5

İlk adım iyi bir CS geçmişine sahip olmaktır - potansiyel olarak daha iyi, ancak en azından BSc Honors derecesini tamamlamış olmak. Bunun için bazı gerekçeler vardır, çünkü derleyiciler (genellikle, dil çevirmenleri) ve ilgili teknikler (lexing, ayrıştırma) bilgisayar biliminin temelleri üzerinde çalışılmaktadır.

Önemli endüstriyel (açık kaynak dahil) derleyici geliştirmenin elbette akademik kimlik eksikliğini azaltacağına inanıyorum - ancak büyük ölçüde adayın arka planına bağlı. Derleyici geliştirmenin burada yorumlayıcıları ve ayrıştırma için ilgili araçları da kapsayacağını unutmayın.

Yazılım mühendisliğinde genel bir yeterliliğe ihtiyaç vardır. İyi bir derleyici (örneğin, bilimsel hesaplama, oyun geliştirme) veya üst düzey bir dilde genel bir programlama arka planının üstünde ve ötesinde montaj dili programlama deneyimi gerektiren uygulamaların alan bilgisi de bir artıdır. Derleyicinin uyguladığı dilin uzman düzeyinde bilgisi de bir artıdır.

Feragatname: Derleyici geliştiriciyim ve adaylarla mülakat yapmaktayım.


5

Günümüzde Flex , YACC ve benzeri birçok araç derleyici yapısını çok daha basit hale getirmişti. Bir hobi gibi sizi büyülediğinden yaklaşmak istiyorsanız, bu araçlar size yardımcı olacaktır ve bir ay içinde iyi bir derleyici ön ucu oluşturabilirsiniz.

Dragon Book , derleyici yapımını kendi kendine öğretmek isteyen herkes için tüm zamanların en sevdiği kitaplardan biridir. Siz ilerledikçe, açık kaynak derleyici kodlarını okuyarak zaman geçirmeye devam edersiniz .


5

Derleyicilerdeki bir kariyer konusunda ciddiyseniz, en azından dil teorisinde, özellikle tür teorisi, biçimsel anlambilim ve hesaplanabilirlik teorisinde örgün eğitime ihtiyacınız olduğuna inanıyorum. Bu alanların akademik ortamın dışında öğrenilmesi zor olacaktır. Çoğunlukla, derleyici yapımı kendi başına bir akıllı geliştiricinin temelleri kendi kendine öğrenebileceği bir konudur. Ancak, güvenlik ve optimizasyon için kapsamlı semantik analiz ve enstrümantasyon kullanan en yeni derleyiciler üzerinde çalışmak istiyorsanız, muhtemelen bu alanda en az bir yüksek lisans tezine ihtiyacınız olacaktır.


1
Bu, bir "ürün mühendisliği rolünden" çok bir Ar-Ge rolü gibi geliyor. Armcc ve LLVM (iki üretim kalitesi C / C ++ derleyicisi) konusunda ürün mühendisiydim ve bu konuların hiçbirine ihtiyaç duymadım, hatta bu alanda çalıştığım 2 yıl içinde bunlara referans bile görmedim.
dune.rocks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.