Какова связь между Lua и C? - PullRequest
4 голосов
/ 09 ноября 2019

Я прохожу стажировку в софтверной компании через несколько недель, чтобы выяснить, стоит ли мне начинать обучение в качестве программиста. У меня есть некоторый (очень) базовый опыт общения с Lua в играх, который я изложил в резюме для прохождения практики, и они сказали мне, что у них есть проект, в котором я мог бы использовать этот опыт. Поэтому я решил получить больше знаний и поиграться с Lua - что привело меня к этому вопросу.

Я знаю, что Lua - это язык сценариев, и он часто внедряется в программы на Си. Из того, что я понимаю, сам Lua написан на очень простом C, а также имеет свой собственный интерпретатор, если используется отдельно. Если это так, то правильно ли:

Неважно, буду ли я использовать Lua в автономном режиме или встроен в среду C-программирования, в основе его всегда будет использование C-кода?

А так как это язык сценариев, то, что я делаю с командами в Lua, в основном обращается к основным командам C и командует ими, как при указании C, что делать?

Ответы [ 2 ]

1 голос
/ 10 ноября 2019

Lua - интерпретируемый язык, или, как неофициально вики называет его языком «обработано программно». Lua компилируется в байт-код (не путать с машинным кодом) и исполняется программным интерпретатором во время выполнения. C - это скомпилированный язык, который компилируется в машинный код из исходного кода и выполняется аппаратно. Если вы хотите получить техническую информацию, исходный код C больше не является C, когда он компилируется.

Я использую Lua одержимо и почти изо всех сил стараюсь использовать его. Я пытаюсь реализовать его во всех своих проектах, даже в проектах, которые уже используют интерпретированный язык. Вы определенно можете далеко продвинуться только в Lua, но я настоятельно рекомендую вам изучить немного C, чтобы вы могли расширить функциональность. По крайней мере, узнайте, как создавать библиотеки DLL, которые можно загружать как модули Lua. В качестве альтернативы изучение C будет полезным, если вы используете LuaJIT, поскольку вы можете вызывать экспортированные из C библиотечные функции напрямую с помощью FFI. Мой последний совет: вы должны прочитать о недостатках интерпретируемых языков и Lua. Вы, конечно, не захотите использовать его, если ваше программное обеспечение должно быть достаточно безопасным или достаточно стабильным для автопилота самолета, после чего требуется обучение современному C ++.

1 голос
/ 09 ноября 2019

Независимо от того, использую ли я Lua как автономный или встроенный в среду C-Programming, в основе всегда будет использоваться C-код?

C обычно является скомпилированным языком, поэтомуво время выполнения исходный код C для Lua больше не актуален. Но машинный код, полученный из этого исходного кода C, всегда будет участвовать в выполнении вашего кода Lua, так что в этом смысле да.

Это не обязательно означает, что вам нужно что-то знать о C, чтобы написать код Lua,однако.

И так как это язык сценариев, то, что я делаю с командами в Lua, это в основном доступ к основным командам C и командование ими, как при указании C, что делать?

Называние Lua «языком сценариев» больше связано с формой кода Lua и вдохновением для его создания, чем с тем, как Lua работает . Несмотря на любые автономные интерпретаторы, он предназначен для встраивания в программы для использования в сценариях поведения этих программ . Конечно, все это реализовано в C, но, как программист Lua, вы не должны думать об этом как об Lua, упаковывающем соответствующие функции языка C.

Действительно, как программист Lua, вам, вероятно, не нужно думать оэто вообще. Однако, если вы подумаете об этом, то лучшей моделью будет то, что среда сценариев на основе Lua оборачивает программные данные и поведение в зависимости от программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...