Pytania otagowane jako compiler

Kompilator to program komputerowy, który przekształca kod źródłowy napisany w jednym języku programowania na inny język komputera.

6
Jakie są zastrzeżenia związane z wdrażaniem podstawowych typów (takich jak int) jako klas?
Przy projektowaniu i wykonawczym języka programowania obiektowego, w jakimś jednym punkcie musi dokonać wyboru o realizacji podstawowych typów (jak int, float, doublelub odpowiedników) jako klasy lub czegoś innego. Wyraźnie, języków z rodziny C mają tendencję nie je zdefiniować jako klasy (Java ma specjalnych typów prymitywnych, C # wdraża je jako …

2
Co to jest ASM.js i co to oznacza dla wszystkich?
Zaczynam słyszeć pomruki o tym projekcie o nazwie ASM.js . Obecnie ich strona internetowa jest okropna i myląca. Oto, co wiem z moich badań w Internecie. Jest to podzbiór JavaScript, który można wysoce zoptymalizować. Zgaduję, ponieważ unika bardziej dynamicznych części języka. Wydajność kodu skompilowanego do ASM.js działa przy około połowie …

5
Czy szablony C ++ są rodzajem uwielbianych makr?
Z różnych porównań szablonów C ++ i generycznych C # / Java takich jak ten - /programming/31693/what-are-the-differences-between-generics-in-c-and-java-and-templates-in-c/31929#31929 Mam wrażenie, że szablony C ++ są implementowane przez pewnego rodzaju przetwarzanie wstępne (zamiana zwykłego tekstu przed parsowaniem), a nie kompilowanie. Ponieważ sprawdzanie typu w szablonach C ++ przypomina makra C. Mam na …
27 c++  c  compiler  templates  macros 


2
Jakie cechy semantyczne Pythona (i innych dynamicznych języków) przyczyniają się do jego spowolnienia?
Nie znam dobrze Python. Staram się lepiej zrozumieć, jakie dokładnie cechy dynamicznych języków (à la Python, Lua, Scheme, Perl, Ruby, ...) zmuszają ich implementacje do powolnego działania. Przykładowo, maszynowość meta Lua 5.3 intuicyjnie spowolniłaby Lua dość powoli, ale w praktyce Lua jest podobno dość szybka (i szybsza niż Python). Mam …

3
Dlaczego nie ma kompilatora Pythona do natywnego kodu maszynowego?
Jak rozumiem, przyczyną różnicy prędkości między skompilowanymi językami a pythonem jest to, że pierwszy kompiluje kod aż do kodu natywnej maszyny, podczas gdy python kompiluje się do kodu bajtowego python, który ma być interpretowany przez PVM. Widzę, że w ten sposób kody Pythona mogą być używane na wielu systemach operacyjnych …

6
Po co wdrażać leksykon jako macierz 2D i gigantyczny przełącznik?
Powoli pracuję nad ukończeniem studiów, a ten semestr to Kompilatory 101. Korzystamy ze Smoczej Księgi . Wkrótce w trakcie kursu mówimy o analizie leksykalnej i o tym, jak można ją wdrożyć za pomocą deterministycznych automatów skończonych (dalej DFA). Skonfiguruj różne stany leksykalne, zdefiniuj przejścia między nimi itp. Ale zarówno profesor, …

3
W jakim procesie występuje błąd składniowy? (tokenizacja lub parsowanie)
Próbuję zrozumieć kompilację i interpretację, krok po kroku, zastanawiając się nad całkowitym obrazem. Podszedłem więc do pytania podczas czytania http://www.cs.man.ac.uk/~pjj/farrell/comp3.html tego artykułu To mówi : Kolejny etap kompilatora nosi nazwę Parser. Ta część kompilatora rozumie gramatykę języka. Odpowiada za identyfikację błędów składniowych i tłumaczenie bezbłędnego programu na wewnętrzne struktury danych, …

5
Jaka jest historia kompilatora C?
To pytanie zostało przeniesione z przepełnienia stosu, ponieważ można na nie odpowiedzieć w programie Software Engineering Stack Exchange. Migrował 8 lat temu . Kiedy mówimy, że „Dennis Ritchie opracował język C”, czy mamy na myśli, że stworzył kompilator (używając „już” rozwiniętego innego języka), który może skompilować kod źródłowy napisany w …
23 c  compiler 

6
Jaka jest typowa procedura stosowana, gdy kompilatory sprawdzają statycznie typ „złożone” wyrażenia
Uwaga: Kiedy użyłem „złożonego” w tytule, mam na myśli, że wyrażenie ma wiele operatorów i operandów. Nie to, że samo wyrażenie jest złożone. Niedawno pracowałem nad prostym kompilatorem do zestawu x86-64. Skończyłem główny front kompilatora - leksykon i parser - i jestem teraz w stanie wygenerować abstrakcyjne drzewo syntaktyczne mojego …


2
Czy możliwe jest utworzenie tłumacza „bootstrapped” niezależnego od oryginalnego tłumacza?
Według Wikipedii termin „bootstrapping” w kontekście pisania kompilatorów oznacza : W informatyce ładowanie to proces pisania kompilatora (lub asemblera) w źródłowym języku programowania, który zamierza skompilować. Zastosowanie tej techniki prowadzi do kompilatora samoobsługowego. I rozumiem, jak to by działało. Ta historia wydaje się jednak nieco inna dla tłumaczy. Teraz oczywiście …

4
GCC vs clang / LLVM - zalety i wady każdego [zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
20 compiler  clang  gcc  llvm 

6
Kiedy płacić za kompilatory C ++ [zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Ostatnio zacząłem się zastanawiać, kiedy programiści powinni płacić za kompilatory. Kompilatory są dostarczane …
19 c++  compiler 


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.