Zaawansowane kompilatory, takie jak gcckompilowanie kodów do plików odczytywalnych maszynowo zgodnie z językiem, w którym kod został napisany (np. C, C ++ itp.). W rzeczywistości interpretują znaczenie każdego kodu zgodnie z biblioteką i funkcjami odpowiednich języków. Popraw mnie, jeśli się mylę. Chcę lepiej zrozumieć kompilatory, pisząc bardzo prosty kompilator (prawdopodobnie …
Ken Thompson Hack (1984) Ken Thompson przedstawił metodę uszkodzenia binarnego kompilatora (i innego skompilowanego oprogramowania, takiego jak skrypt logowania w systemie * nix) w 1984 roku. Byłem ciekawy, czy współczesna kompilacja usunęła tę lukę w zabezpieczeniach, czy nie. Krótki opis: Ponownie napisz kod kompilatora, aby zawierał 2 błędy: Podczas kompilacji …
Z tego, co przeczytałem: Powodem jest to, że nie jest łatwo ustalić, która metoda zostanie faktycznie wywołana, ponieważ mamy dziedziczenie. Dlaczego jednak Java nie ma przynajmniej optymalizacji rekurencji dla metod statycznych i nie wymusza właściwego sposobu wywoływania metod statycznych za pomocą kompilatora? Dlaczego Java nie ma żadnego wsparcia dla rekursji …
Jakie szczególne zalety i wady każdego sposobu pracy z gramatyką języka programowania? Dlaczego / Kiedy powinienem wyrzucić własny? Dlaczego / Kiedy powinienem używać generatora?
Po przejrzeniu kilku odpowiedzi na temat przepełnienia stosu jest jasne, że niektóre natywnie skompilowane języki mają funkcję usuwania śmieci . Ale nie jest dla mnie jasne, jak dokładnie by to działało. Rozumiem, jak wyrzucanie elementów bezużytecznych może działać z interpretowanym językiem. Śmieciarka po prostu działałaby obok interpretera i usuwała nieużywane …
Próbuję ustalić szczegóły techniczne, dlaczego oprogramowanie wyprodukowane przy użyciu języków programowania dla niektórych systemów operacyjnych działa tylko z nimi. Rozumiem, że pliki binarne są specyficzne dla niektórych procesorów ze względu na język maszynowy, który rozumieją i różne zestawy instrukcji dla różnych procesorów. Ale skąd bierze się specyfika systemu operacyjnego? Zakładałem, …
To tylko zastanawiam się, kiedy czytałem o językach interpretowanych i kompilowanych. Ruby jest bez wątpienia językiem interpretowanym, ponieważ kod źródłowy jest przetwarzany przez interpretera w punkcie wykonania. Przeciwnie, C jest językiem kompilowanym, ponieważ najpierw należy skompilować kod źródłowy zgodnie z maszyną, a następnie wykonać. Wynikiem tego jest znacznie szybsze wykonanie. …
C jest jednym z najczęściej używanych języków na świecie. Stanowi ogromną część istniejącego kodu i jest nadal używany do ogromnej ilości nowego kodu. Jest uwielbiany przez użytkowników, jest tak szeroko rozpowszechniony, że możliwość uruchamiania C jest dla wielu nieformalną definicją platformy i jest chwalony przez fanów za to, że jest …
Pierwszy kompilator został napisany przez Grace Hopper w 1952 roku, podczas gdy tłumacz Lisp został napisany w 1958 roku przez studenta Johna McCarthy'ego, Steve'a Russella. Pisanie kompilatora wydaje się o wiele trudniejszym problemem niż tłumacz. Jeśli tak, to dlaczego pierwszy kompilator napisano sześć lat przed pierwszym tłumaczem?
Używamy kompilatorów na co dzień, jakby ich poprawność była podana, ale kompilatory są również programami i mogą potencjalnie zawierać błędy. Zawsze zastanawiałem się nad tą niezawodnością. Czy kiedykolwiek napotkałeś błąd w samym kompilatorze? Co to było i jak zdałeś sobie sprawę, że problem tkwi w samym kompilatorze? ... a jak …
Pracuję więc nad projektem oprogramowania wykorzystującym C dla określonego procesora. Zestaw narzędzi obejmuje możliwość kompilacji zarówno C, jak i C ++. Do tego, co robię, w tym środowisku nie jest dostępna dynamiczna alokacja pamięci, a program jest ogólnie dość prosty. Nie wspominając o tym, że urządzenie prawie nie ma mocy …
Porównuję dwie technologie, aby uzyskać rekomendację, z której firma powinna skorzystać. Kod technologii A jest interpretowany, podczas gdy kod technologii B jest kompilowany do kodu maszynowego. W moim porównaniu stwierdzam, że ogólnie technologia B miałaby lepszą wydajność, ponieważ nie ma dodatkowego obciążenia związanego z procesem interpretacji. Oświadczam również, że ponieważ …
Ponieważ coraz bardziej polegamy na komputerach, w tym na bardzo ważnych zadaniach codziennego życia, zastanawiałem się tylko, w jaki sposób testowane są te istotne elementy. Z technicznego punktu widzenia, w jaki sposób testowane są kompilatory i asemblery? (Przypuszczam, że dotyczy to problemu zatrzymania !!)
Wiele lat temu byłem zaskoczony, gdy odkryłem, że Intel sprzedaje kompilatory kompatybilne z Visual Studio. Próbowałem w szczególności dla C / C ++, a także fantastycznych narzędzi diagnostycznych. Ale kod po prostu nie był tak intensywny obliczeniowo, aby zauważyć różnicę. Jedyne wrażenie brzmiało: czy Intel naprawdę zrobił to teraz dla …
Biorąc pod uwagę ilość materiału, który próbuje wyjaśnić, czym jest gramatyka bezkontekstowa (CFG), zaskoczyło mnie, że bardzo niewiele (w mojej próbce, mniej niż 1 na 20) wyjaśnia, dlaczego takie gramatyki nazywane są „kontekstowo” wolny". Moim zdaniem, nikomu się to nie udaje. Moje pytanie brzmi: dlaczego gramatyki bezkontekstowe nazywane są bezkontekstowymi? …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.