• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

W jakim języku pisze się języki programowania?

VPS Starter Arubacloud
+1 głos
1,016 wizyt
pytanie zadane 10 grudnia 2020 w Inne języki przez shaye.servando Nowicjusz (170 p.)
W jakim języku pisane są inne języki programowania? Np. co sprawia, że działa taki język jak np. php? Czy jest on napisany w assemblerze czy z wykorzystaniem innego języka?

2 odpowiedzi

+1 głos
odpowiedź 10 grudnia 2020 przez tangarr Mędrzec (154,780 p.)
Języków programowania nie pisze się w żadnym języku programowania.
Język programowania jest zbirem reguł jakie należy przestrzegać aby napisać program.
Dopiero po zaprojektowaniu języka możesz zacząć pisać kompilator/interpreter języka.
Kompilator/interpreter może zostać napisany w dowolnym języku programowania. Dla przykładu podam kompilator GHC (języka funkcyjnego haskell): Pierwsze wersje kompilatora były pisane w języku C. Gdy język (i jego kompilatory) były już wystarczająco dojrzałe to przepisano go w haskellu.
komentarz 10 grudnia 2020 przez jankustosz1 Nałogowiec (35,880 p.)
Jaki był sens przepisania go do haskella? W sensie wydajności to na pewno nie poprawiło, a co najwyżej mogło pogorszyć, więc?
komentarz 10 grudnia 2020 przez tkz Nałogowiec (42,000 p.)
Poczytaj o bootstrapping'u.
komentarz 10 grudnia 2020 przez tangarr Mędrzec (154,780 p.)

@jankustosz1, Podejrzewam, że było to pokierowane kwestiami marketingowymi.

komentarz 10 grudnia 2020 przez jankustosz1 Nałogowiec (35,880 p.)
Czyli robi się to z następujących powodów:

1) Przetestować czy język się sprawdza

2) Programiści rozwijający kompilator muszą znać tyko jeden język

3) Można pisać kompilator w języku wyższego poziomu

4) Optymalizując sposób kompilowania optymalizuje się także sam kompilator

Większość z tych rzeczy wydaje mi się bez sensu.

Jeżeli chce się pisać w języku wyższego poziomu to można w nim pisać kompilator od początku. Po co robić problemy tylko po to by je rozwiązywać(odnośnie pkt. 4).

W sumie jedynym plusem wydaje mi się że programiści wystarczy by znali tylko jeden język, ale czy to rzeczywiście aż taki problem by znali 2?
komentarz 10 grudnia 2020 przez tangarr Mędrzec (154,780 p.)
A jak skompilujesz kompilator nowego języka napisany w tym języku, jeżeli jeszcze nie masz do niego żadnego kompilatora?
komentarz 10 grudnia 2020 przez jankustosz1 Nałogowiec (35,880 p.)
W sensie bo idea jest chyba taka żeby napisać minimalistyczny kompilator i już na jakiego podstawie wszystko rozbudowywać w nowym języku.
komentarz 10 grudnia 2020 przez tkz Nałogowiec (42,000 p.)

@tangarr, Rozbudowujesz projekt tak długo, aż będzie wstanie skompilować sam siebie. Spójrz na Rusta. 

jankustosz1 Czy ma to sens? Minimalistyczny pod jakim względem? Dostępnych możliwości? W mojej ocenie mija się to celem ponieważ na bardzo wstępnym etapie odcinamy się od wielu możliwości.

komentarz 10 grudnia 2020 przez jankustosz1 Nałogowiec (35,880 p.)
Minimalistyczny miałem na myśli minimalistyczny wystarczający do skompilowania kompilatora w nowym języku. Miałem na myśli dokładnie to samo co ty
0 głosów
odpowiedź 10 grudnia 2020 przez reaktywny Nałogowiec (40,650 p.)

Pytasz, rozumiem, o kompilatory nowych języków....Zwykle jest to w C lub C++, np. CPython jest napisany w C++/C. W Assemblerze dziś już nie pisze się kompilatorów języków, może jedynie  języki "wbudowane" (dla elektroniki embedded), ale też wątpię. Kompilatory dla niektórych niszowych języków powstają czasem w Rust, słyszałem też coś o Go.

Polecam książkę "Kompilatory" (w języku polskim, chyba PWN-u). Jest ten temat świetnie omówiony.

"Kompilatory: reguły, metody i narzędzia"  Książka autorstwa: Alfred V. Aho, Jeffrey Ullman i Ravi Sethi

 

BTW. Obecnie prowadzone są prace nad dwoma ciekawymi językami:

"Erlang 2" (tymczasowa nazwa) - pracują nad nim głównie ludzie z Facebooka, ma to być Erlang silnie typowany.

"Jai" tworzony przez Jonathana Blow

https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md

https://inductive.no/jai

 

 

Podobne pytania

+1 głos
1 odpowiedź 429 wizyt
+1 głos
2 odpowiedzi 372 wizyt
pytanie zadane 1 listopada 2020 w Sprawy forum przez Igorek Mądrala (6,290 p.)
0 głosów
2 odpowiedzi 814 wizyt
pytanie zadane 16 marca 2020 w Inne języki przez mreo Użytkownik (790 p.)

92,453 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...