amarao (amarao_san) wrote,
amarao
amarao_san

Системно-полный язык

Поскольку предыдущий пост вызвал кучу комментариев, уточняю, что такое "системно-полный" язык.

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

Очевидно, без ассемблера мы _всё_ не сделаем. Вряд ли какой-либо ЯП поддерживает инструкции вида "запись в CR-регистры у intel" со всеми вытекающими.

Однако, допуская в ЯП общение с ассемблером (ок, меня убедили, что достаточно линкинга) нужно соблюсти одну важную вещь:

ЯП должен обеспечить передачу в обе стороны машинного слова и указателя на данные без их преобразования. Что означает:
* nice case: передачу через запись в регистр (или даже через передачу имени регистра, где хранится значение)
* bad case: копирование значения на стек или в отведённую область памяти.

Заметим, никакого дополнительного геморроя для ассемблерного кода "выделить память, установить refcounter, поправить пару указателей на этот блок памяти". Верно и обратное, язык не должен делать специальное преобразование из собственного формата в чужеродный перед вызовом.

Другими словами (но не заменяя определения) - полностью системным языком является такой, который способен оперировать примитивами машины как собственными объектами, обеспечивая по-возможности их прямое соответствие (целое - > word, указатель -> pointer). Заметим, я не требую, чтобы язык действительно имел указатели как основной инструмент (иначе тот же си получится), а имел такой формат хранения данных, который позволил бы без специальных преобразований с этими указателями работать как с штатными объектами).
Subscribe

Recent Posts from This Journal

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.

  • CI без сервера

    А вот у меня есть такой запрос: я хочу иметь CI-подобный инструмент (задачи/автоматически вычисляемые зависимости порядка выполнения, параметры,…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 13 comments

Recent Posts from This Journal

  • Админская мудрость

    Когда вывод strace на башовый скрипт становится понятнее самого скрипта, граница разумности давно пройдена.

  • Rules of internet

    Rule 34. There is porn of it. Rule 35. It's used to mine cryptocurrencies.

  • CI без сервера

    А вот у меня есть такой запрос: я хочу иметь CI-подобный инструмент (задачи/автоматически вычисляемые зависимости порядка выполнения, параметры,…