Odjechani.com.pl

Pełna wersja: Zrozumienie działania kompilatorów kluczem do zrozumienia jak działają komputery?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Niedawno znalazłem artykuł opisujący jak zbudować prosty interpreter. https://ruslanspivak.com/lsbasi-part1/
Zainteresowały mnie następujące fragmenty:

Cytat:if you don’t know how compilers and interpreters work, then you don’t know how computers work. It’s that simple.

Cytat:Why would you study interpreters and compilers? I will give you three reasons.
  1. To write an interpreter or a compiler you have to have a lot of technical skills that you need to use together. Writing an interpreter or a compiler will help you improve those skills and become a better software developer. As well, the skills you will learn are useful in writing any software, not just interpreters or compilers.
  2. You really want to know how computers work. Often interpreters and compilers look like magic. And you shouldn’t be comfortable with that magic. You want to demystify the process of building an interpreter and a compiler, understand how they work, and get in control of things.
Czy zgadzacie się z tym, że jak pozna się zasadę działania kompilatorów, to będzie się ogólnie lepszym programistą oraz lepiej będzie się rozumiało jak działają komputery?
Powiem tak, nigdy nie będziesz wiedział wszystkiego, wiec profilujesz się w ścisłej dziedzinie, a o reszcie wiesz tylko ogólniki, bądź tyle co Ci potrzeba i nie więcej. Jak za bardzo będziesz wtajemniczał się w coraz to inne dziedziny, nigdy nie osiągniesz perfekcji w którejkolwiek z nich.

Ja jestem tego zdania, że jak nie osiągnie się poziomu dobrego w jednej dziedzinie, nie ma co się brać za kolejną. Jeśli chcesz łączyć języki programowania tego samego poziomu, bądź różnych poziomów, przesiedzisz długie lata zanim napiszesz cokolwiek naprawdę solidnego, a trzeba jeszcze przecież podzielić, to na dziedziny, bo przecież programista, który siedział tylko w aplikacjach sieciowych, nie ogarnie od razu jak napisać jądro systemu operacyjnego, albo nagle będzie potrafił programować aplikacje mobilne, czy obsługiwać mikrokontrolery, zarządzać systemami czasu rzeczywistego i pisać pod nie aplikacje.

Zaczniesz przesadnie kombinować, nie nauczysz się niczego. Autorowi artykułu mogę równie dobrze napisać, nie znasz się na elektronice, elementach elektrycznych i elektronicznych, czynnych i biernych, nie znasz się na komputerach. Oczywiście kiedyś musisz zejść do niższego poziomu programowania, by dalej się rozwijać, bo z czasem spowolnisz i nie będziesz już dalej się rozwijał, a zaczniesz skakać, to niczego się nie nauczysz.

Może Ci się wydawać, ze coś umiesz, a za pół roku nie będziesz pamiętał jak to było, bo nie utrwalałeś wiedzy, tylko skakałeś. Utrwalaj wiedzę, to potem pisanie będzie szło coraz lepiej, a Ty będziesz szukał szerszych możliwości kodowania, by sobie ułatwić życie i poznasz szerszą wiedzę, wciąż ją utrwalając.
To zależy od uczelni i programu, na pewno mają program zajęć, będziesz wiedział jak przejrzysz gdzie jest więcej systemów wbudowanych i techniki mikroprocesorowej.
Zadałem identyczne pytanie na pewnym programistycznym forum i dostałem odpowiedź, że powinienem zrozumieć działanie assemblera i, że zrozumienie jak działa kompilator nie pomoże, bo to po prostu program.