Комментарии 21
НЛО прилетело и опубликовало эту надпись здесь
Точно сказать что «Продолжение будет» или «Продолжения не будет» я сказать не могу.
0
Запасайся несколькими большими тарелками:
habr.com/ru/post/434966
habr.com/ru/post/435202
habr.com/ru/post/435258
habr.com/ru/post/435520
habr.com/ru/post/436224
habr.com/ru/post/437632
habr.com/ru/post/442560
habr.com/ru/post/434966
habr.com/ru/post/435202
habr.com/ru/post/435258
habr.com/ru/post/435520
habr.com/ru/post/436224
habr.com/ru/post/437632
habr.com/ru/post/442560
0
Про интерпретаторы байткода на Хабре недавно был очень хороший пост. Мне кажется, он будет вам интересен, в том числе как пример хорошей обучающей статьи на данную тему.
А код плохой, да. Удручают, например, определения функций в заголовочных файлах, или каскады else if вместо одного switch.
+2
Спасибо приму к сведению.
0
А что не так с определениями функций в заголовочных файлах?
0
Во-первых, с точки зрения организации кода, в заголовочных файлах обычно определяется только интерфейс какого-то модуля программы — объявления типов и функций, документирующие комментарии и т.д. Детали реализации помещают в файлы .c
Во-вторых, если такой заголовочный файл подключить в два раздельно компилирующихся файла, то она скомпилируется в каждом из них, что приведет к ошибке на стадии компоновки — нескольким определениям одного и того же имени (функции).
Во-вторых, если такой заголовочный файл подключить в два раздельно компилирующихся файла, то она скомпилируется в каждом из них, что приведет к ошибке на стадии компоновки — нескольким определениям одного и того же имени (функции).
+2
Я заметил 4 пунктуационных ошибки до #habracut
0
Если эта тема интересна, то имеет смысл прочитать
Advanced Design and Implementation of Virtual Machines
www.amazon.com/Advanced-Design-Implementation-Virtual-Machines/dp/146658260X
Advanced Design and Implementation of Virtual Machines
www.amazon.com/Advanced-Design-Implementation-Virtual-Machines/dp/146658260X
+1
#define $CRGОфигеть! А что, так можно было?
+1
В именах или в качестве имён макросов можно использовать "$" & "_".
0
Implementation-defined. Где-то можно, где-то нельзя.
https://en.cppreference.com/w/c/language/identifier
An identifier is an arbitrarily long sequence of digits, underscores, lowercase and uppercase Latin letters, and Unicode characters specified using \u and \U escape notation (since C99).
(...)
It is implementation-defined if raw (not escaped) Unicode characters are allowed in identifiers
В GCC, например, можно.
+1
Код к сожалению не идеален, но для начала вполне неплохо. Я бы порекомендовал вам написать простенький транслятор с C-подобного псевдоязыка в байт-код вашей машины (это далеко не так сложно, как кажется, смотрите рекурсивный спуск, и раз уж вы пишете на C — вам могут помочь такие утилиты как lex и yacc, например). Когда у вас будет больше одного типа данных, поддержка строк и рекурсии — вы сами поймёте, что не так с вашим кодом, и как его можно улучшить, это нормально. Продолжайте в том же духе!
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Виртуальная машина своими руками