Czy kompilacja, która generuje tymczasowy kod bajtowy (jak w Javie), zamiast przechodzić „do samego końca” do kodu maszynowego, generalnie wiąże się z mniejszą złożonością (a zatem prawdopodobnie zajmuje mniej czasu)?
Czy kompilacja, która generuje tymczasowy kod bajtowy (jak w Javie), zamiast przechodzić „do samego końca” do kodu maszynowego, generalnie wiąże się z mniejszą złożonością (a zatem prawdopodobnie zajmuje mniej czasu)?
Kiedy programowanie w CI uznało za nieocenione pakowanie struktur za pomocą __attribute__((__packed__))atrybutu GCC, dzięki czemu mogę łatwo przekonwertować ustrukturyzowaną część pamięci ulotnej na tablicę bajtów, która ma być przesłana przez magistralę, zapisana w pamięci lub zastosowana do bloku...
Mój instruktor klasy Mikroprocesor dał nam zadanie i powiedział: „Napisz asembler w C.” - Mój umiłowany profesorze Wydawało mi się to trochę nielogiczne. Jeśli się nie mylę, asembler to pierwszy krok od Kodu Maszynowego do podróży po językach wyższego poziomu. Mam na myśli, że C jest...
Dlaczego? W zależności od źródła najprawdopodobniej kompilator Intela lub zdecydowanie kompilator generujący najszybsze pliki wykonywalne dla architektury x86 (skrócenie czasu wykonywania o 5 do 100%). Intel oferuje swoje kompilatory dla Linuksa na niekomercyjnej licencji za darmo (myślę, że...
Próbuję lepiej zrozumieć, co byłoby wymagane, aby kompilator mógł dokonywać inteligentnych wyborów dotyczących współbieżności w imieniu programisty. Zdaję sobie sprawę, że istnieje wiele trudnych aspektów tego problemu, na przykład: Zapewnienie, że nie ma warunków wyścigu Zapewnienie, że kod,...
Nie planuję pisać kompilatora w najbliższej przyszłości; nadal jestem dość zainteresowany technologiami kompilatora i tym, jak można to ulepszyć. Zaczynając od języków skompilowanych, większość kompilatorów ma dwa poziomy błędów: ostrzeżenia i błędy, z których pierwszy to najczęściej niekrytyczne...
Jest to część serii pytań, które koncentrują się na projekcie o nazwie Projekt abstrakcji, którego celem jest wyodrębnienie pojęć używanych w projektowaniu języka w formie frameworka. Kolejną związaną z tym stronę związaną z typowaniem strukturalnym można obejrzeć tutaj . Meta-temat związany z...
Powiedzmy, że chciałem stworzyć dynamiczny kompilator / interpreter języka, być może interpreter schematu, na platformie .NET w obecnym kształcie. Czy lepiej byłoby użyć Dynamic Language Runtime (DLR) lub C # 4.0 do wdrożenia funkcji dynamicznych mojego języka? Czy potrzebuję obu? Wiem, że w tej...
W językach dynamicznych, takich jak JavaScript lub Python, typ zmiennej jest określany w czasie wykonywania. Jest to jeden z powodów, dla których są one wolniejsze niż języki pisane, takie jak Java. Jak przeprowadzana jest kontrola typu? Co jest zasadniczym powodem, dla którego ten proces jest...
Rozumiem, że kompilatory C ++ nie są ze sobą kompatybilne. Jednak nie byłem w stanie znaleźć niczego na ten temat, w szczególności dla C. Wiem, że standard C pozostawia wiele miejsca dla kompilatorów do implementacji rzeczy, które uznają za stosowne: na przykład rozmiar i wyrównanie większości...
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 . Istnieją 2 argumenty...
Jestem studentem trzeciego roku studiów inżynierskich. Od tego roku moja uczelnia wprowadziła nowy kurs o nazwie „Kompilatory kompilatorów”, który uczy podstaw teorii tworzenia kompilatora. Jaka byłaby rzeczywista zaleta dla inżyniera oprogramowania w nauce budowy
Niedawno podjąłem się zadania napisania języka programowania opartego na stosie. Zanim jednak zacząłem projektować swój język, pomyślałem, że dobrym pomysłem byłoby czytanie i eksperymentowanie z istniejącymi językami stosowymi. To prowadzi mnie do tematu tego postu. Czytałem artykuł w Wikipedii...
Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było tematem dotyczącym wymiany stosów inżynierii oprogramowania. Zamknięte 4 lata temu . Nie jestem studentem informatyki...
Obecnie implementuję ewaluator wyrażeń (wyrażenia jednowierszowe, takie jak formuły) w oparciu o: wprowadzone wyrażenie jest tokenizowane w celu oddzielenia literalnych boolanów, liczb całkowitych, dziesiętnych, ciągów, funkcji, identyfikatorów (zmiennych) Zaimplementowałem algorytm Shunting-yard...
Jest to część serii pytań, które koncentrują się na siostrzanym projekcie Abstraction Project, którego celem jest wyodrębnienie pojęć używanych w projektowaniu języka w formie ram. Projekt siostrzany nazywa się OILexer, który ma na celu skonstruowanie analizatora składni z plików gramatycznych,...
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 6 lat temu . To może być dziwne...
Czy wymagała tego zmiana języka lub jakiś praktyczny powód, dla którego Bison nie był już odpowiedni ani optymalny? Widziałem na Wikipedii , że się zmieniły, odnosząc się do informacji o wersji GCC 3.4 i GCC 4.1 . Te informacje o wersji zawierają: Ręcznie napisany parser C ++ z rekurencyjnym...
Od wydania 4.8 kompilator C ++ GCC (część G ++) jest już napisany nie w języku C, ale w samym C ++. Mam hipotetyczne pytanie w tej sprawie. Zastanawiam się, jak skompilować kod C ++ GCC na nowej platformie, która nie ma jeszcze kompilatora C ++. Oczywiście można użyć wstępnie skompilowanych plików...
Jestem programistą C ++ i starając się lepiej zrozumieć rozwój międzyplatformowy, staram się lepiej zrozumieć niektóre szczegóły implementacyjne kompilatorów i jak dokładnie tworzą one pliki binarne specyficzne dla systemu operacyjnego. W trakcie moich badań zdałem sobie sprawę, że przynajmniej...