LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Только я всё равно не понимаю, почему минимальной единицей трансляции является именно модуль, а не функция, особенно когда я показал тебе пример обратного.

потому что так устроен нормальный модульный язык, а таким референсным языком является модула-2. что даже видно их названия, а еще лучше - из его описания.

просто функция не может быть (в общем случае) единицей компиляции, уже потому, что в общем случае не может быть скомпилирована без окружения в котором она находится.

вы не можете просто выделить кусок текста в файле и сказать компилятору - скомпилируй вот это и сделай их этого обьектник.

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

что там за чудесатый хаскель, что может прям взять функцию, и без контекста из нее код сделать - не знаю. видимо он общается с космосом.

Исходная версия alysnix, :

Только я всё равно не понимаю, почему минимальной единицей трансляции является именно модуль, а не функция, особенно когда я показал тебе пример обратного.

потому что так устроен нормальный модульный язык, а таким референсным языком является модула-2. что даже видно их названия, а еще лучше - из его описания.

просто функция не может быть (в общем случае) единицей компиляции, просто потому, что в общем случае не может быть скомпилирована без окружения в котором она находится.

вы не можете просто выделить кусок текста в файле и сказать компилятору - скомпилируй вот это и сделай их этого обьектник.

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

что там за чудесатый хаскель, что может прям взять функцию, и без контекста из нее код сделать - не знаю. видимо он общается с космосом.