Этот интерпретатор - очень упрощённый пример, поэтому я не стал заморачиваться, хотя можно было транслировать код bf в код C или ассемблера, а потом компилировать, но зто уже был бы компилятор а не интерпретатор.
Здесь полностью согласен, но данный пример интерпретатор не предназначен для ввода слишком длинной строки, и писался за 5 минут, поэтому этот недочёт не был замечен.
Это все хорошо, но почему именно switch case?
if/else тоже хорошо, чем if/else не устроило?
ПОЕСНИТЕЛЬНАЯ БРИГАДА:
Смысл статьи - максимально быстро и незапарно получить полные права.
Чем плох memset?
В исходнике нет функции bf_shell вообще, там все действия происходят в main.
И почему возврат int чем-то может не устраивать?
Перед чтением файла программа узнает размер файла и создаёт массив который соответствует размеру файла и только потом файл считается в массив.
Почему тогда gcc - компилятор? Если фактически он транспилятор из C в ассемблер?
Этот интерпретатор - очень упрощённый пример, поэтому я не стал заморачиваться, хотя можно было транслировать код bf в код C или ассемблера, а потом компилировать, но зто уже был бы компилятор а не интерпретатор.
Все компилируется, вот исходник
Число 30000 взято из всех стандартных интерпретаторов bf.
char plus = "+" ; работать не будет, потому что тип данных "" это указатель.
Для примера попробуйте скомпилировать и запустить такой код
Он выведет только перевод строки, т.к в переменную test записан указатель на символ "i".
Здесь полностью согласен, но данный пример интерпретатор не предназначен для ввода слишком длинной строки, и писался за 5 минут, поэтому этот недочёт не был замечен.