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 …
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 …
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 …
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 …
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 …
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, …
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, …
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 …
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 …
Dlaczego w dokumentacji niektórych języków jest napisane „odpowiednik” zamiast „jest”? Na przykład, mówią Python Docs itertools.chain(*iterables) ... Odpowiednik : def chain(*iterables): # chain('ABC', 'DEF') --> A B C D E F for it in iterables: for element in it: yield element Lub to odwołanie do C ++ nafind_if : Zachowanie …
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 …
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 …
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 …
Chciałbym wiedzieć, czy możliwe jest wykrycie deletebłędu skomentowanego poniżej podczas kompilacji? Szczególnie chciałbym usłyszeć o kompilatorze g ++. ClassTypeA *abc_ptr = new ClassTypeA[100]; abc_ptr[10].data_ = 1; delete abc_ptr; // error, should be delete []
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.