Pytania otagowane jako compiler-construction

Konstrukcja kompilatora tagów powinna być stosowana w pytaniach dotyczących programowania kompilatorów lub w przypadku pytań o szczegółowe wewnętrzne działanie kompilatorów. NIE UŻYWAJ w przypadku pytań dotyczących * używania * określonych kompilatorów lub błędów kompilacji.

6
Jakie rodzaje wzorców mogę zastosować w kodzie, aby ułatwić tłumaczenie na inny język programowania? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Popraw to pytanie Mam zamiar zrobić poboczny projekt, którego celem jest przetłumaczenie kodu z jednego …

11
Czy tworzenie plików klas Java jest deterministyczne?
Czy w przypadku korzystania z tego samego JDK (tj. Tego samego javacpliku wykonywalnego) wygenerowane pliki klas są zawsze identyczne? Czy może istnieć różnica w zależności od systemu operacyjnego lub sprzętu ? Czy poza wersją JDK mogą istnieć inne czynniki powodujące różnice? Czy są jakieś opcje kompilatora, aby uniknąć różnic? Czy …

5
implementacja wnioskowania o typie
Widzę tutaj kilka interesujących dyskusji na temat pisania statycznego i dynamicznego. Generalnie wolę wpisywanie statyczne, ze względu na sprawdzanie typów kompilacji, lepiej udokumentowany kod itp. Zgadzam się jednak, że zaśmiecają one kod, jeśli są robione tak, jak robi to na przykład Java. Więc zaraz zacznę budować własny funkcjonalny język stylów, …


8
Jak podejść do tworzenia języka programowania JVM?
Stworzyłem kompilator w C (używając Lex & Bison) dla dynamicznego języka programowania, który obsługuje pętle, deklaracje funkcji wewnątrz funkcji, wywołania rekurencyjne itp. Stworzyłem również maszynę wirtualną, która uruchamia kod pośredni utworzony przez kompilator. Myślałem o skompilowaniu go do kodu bajtowego Java zamiast własnego kodu pośredniego. Widziałem, że pytanie o stworzenie …

4
Kompilacja vs Transpiling
Szukając różnicy, natrafiłem na te definicje: Kompilacja to ogólny termin oznaczający pobieranie kodu źródłowego napisanego w jednym języku i przekształcanie go w inny. Transpiling to specyficzny termin oznaczający pobieranie kodu źródłowego napisanego w jednym języku i przekształcanie go w inny język o podobnym poziomie abstrakcji. Rozumiem, czym jest abstrakcja. Ale …

6
Czy parsery GCC i Clang są naprawdę napisane odręcznie?
Wygląda na to, że GCC i LLVM-Clang używają ręcznie zapisywanych rekurencyjnych parserów zejścia , a nie generowanego maszynowo, opartego na Bison-Flex, analizowania oddolnego. Czy ktoś tutaj mógłby potwierdzić, że tak jest? A jeśli tak, to dlaczego główne platformy kompilatorów używają odręcznych parserów? Aktualizacja : interesujący blog na ten temat tutaj

7
Jak jądro Linuksa może się skompilować?
Nie do końca rozumiem proces kompilacji jądra Linuksa, kiedy instaluję Linuksa na moim komputerze. Oto kilka rzeczy, które mnie zdezorientowały: Jądro jest napisane w C, ale w jaki sposób jądro zostało skompilowane bez zainstalowanego kompilatora? Jeśli kompilator C jest zainstalowany na moim komputerze przed skompilowaniem jądra, w jaki sposób sam …

6
Czy kompilatory tworzą lepszy kod dla pętli do-while w porównaniu z innymi typami pętli?
W bibliotece kompresji zlib (która jest używana między innymi w projekcie Chromium) jest komentarz, który sugeruje, że pętla do-while w C generuje „lepszy” kod na większości kompilatorów. Oto fragment kodu, w którym się pojawia. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && …






8
Dlaczego GDB przeskakuje nieprzewidywalnie między wierszami i wypisuje zmienne jako „<zoptymalizowana wartość wyjściowa>”?
Czy ktoś może wyjaśnić to zachowanie gdb? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

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.