LINUX.ORG.RU

Избранные сообщения qulinxao3

Моя новая теория по поводу ИИ хайпа

Форум — Talks

В том числе по мотивам недавнего обсуждения на LOR:

https://bykozy.me/blog/attention-economics-and-software-engineering/ ­— Attention Economics and Software Engineering

В данном случае маш перевод читать будет попроще, но, судя по всему, по итогу мало кто понимает, о чём оно. А если начать пояснять и вываливать первоисточники, то там на книгу выйдет.

Если кратко:

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

Новости аля
Разработчики Godot столкнулись с наплывом «нейрослопа»
подтверждают мою позицию, но я всё-таки иду дальше в выводах.

 , ,

byko3y
()

Ant: создание среды выполнения JavaScript за один месяц

Статьи — Разработка

Это перевод поста building a javascript runtime in one month от второго января 2026 года.

TLDR: Я создал Ant, небольшую (2 МБ) среду выполнения JavaScript. Полный исходный код, а также тесты и документацию можно найти на моем github.

Когда я начал этот проект в начале ноября, у меня была простая идея: а что, если я смогу создать движок JavaScript, достаточно маленький, чтобы его можно было встроить в программу на C, но достаточно полный, чтобы на нём можно было запускать реальный код? Что-то, что можно было бы распространять, не таская с собой сотни мегабайт V8 или Node. Я уже пробовал это раньше с минимальными копиями Deno, но этого было недостаточно.

Я не думал, что это займет месяц. Я не думал, что это будет возможно за месяц. Но вот в чём дело – когда создаёшь что-то без сроков, ты просто продолжаешь работать.

( читать дальше... )

 , , , ,

dataman
()

Нейронные сети нетрадиционного возбуждения

Статьи — Разработка

Данная статья не стремится к научной полноте и не содержит формул, однако включает ссылки на исследования, которые были использованы при её подготовке. Статья призвана познакомить читателя с тем, как биологические механизмы могут применяться при разработке искусственных нейронных сетей для создания сильного искусственного интеллекта (AGI).

В прошлой статье [1 (linux.org.ru)] мы рассмотрели сложную структуру нейронной сети в виде кортикальных колонок. Однако передача сигнала в ней осталась такой же, как в обычных искусственных нейронных сетях. Давайте заменим её на биологический вариант.

( читать дальше... )

 , , ,

Obezyan
()

Линукс - отстой

Форум — Talks

Вот допустим у меня образ диска, сделанный dd if=/dev/sda if=image.img. А вот теперь, как в ваших хваленых Линуксах мне подмонтировать _раздел_ с этого образа, не разворачивая его? В Венде у меня есть программа PassMark OSF Mount. А у вас что? В тред приглашается vbr

 

lenin386
()

Luau - Lua с «батарейками», написанный на C++17

Форум — Development

Luau (GitHub) - встраиваемый, Lua 5.1-совместимый (и частично с Lua 5.2-5.4), язык со следующими улучшениями (или «улучшениями»?):

function foo(x: number, y: string): boolean
    local k: string = y:rep(x)
    return k == "a"
end
type Point = { x: number, y: number }
type Array<T> = { [number]: T }
type Something = typeof(string.gmatch("", "%d"))
for k, v in {1, 4, 9} do
    assert(k * k == v)
end
  • улучшенный repl (используется C-альтернатива readline Isocline)
  • и другие изменения ;)

По соображениям безопасности отсутствуют io, os, package и debug.

(En|Destr)oy!

 , ,

dataman
()

Вышла библиотека CrazyCPM

Новости — Open Source
Вышла библиотека CrazyCPM
Группа Open Source

Состоялся первый релиз библиотеки CrazyCPM.

Библиотека написана на Python, C, Cython и предназначена для сетевого моделирования проектов и работ методом критического пути (CPM (wikipedia.org)), а также методом анализа и оценки программ (PERT).

Особенности CrazyCPM:

  1. Построение сетевых моделей типа «работы-дуги» (в большинстве существующих систем управления проектами используются сетевые модели типа «работы-вершины»).
  2. Для моделирования детерминированных проектов и работ реализован метод CPM.
  3. Для моделирования проектов и работ, сопряжённых с рисками реализован метод PERT.
  4. Для расчётов статистических параметров проектов и работ используется модифицированное PERT-распределение, что позволяет использовать библиотеку для моделирования малых и средних проектов (<100 работ на критическом пути).
  5. Библиотека позволяет строить модели с учётом особенностей назначенных на работы ресурсов (производительность, доступность во времени и т.д.)
  6. Возможен экспорт данных построенных моделей в pandas.Dataframe или в словарь.
  7. Для визуализации сетевых графиков используется Graphviz.
  8. Наиболее тяжёлые операции (построение сети) реализованы на C.

Библиотека CrazyCPM используется в прототипе системы управления проектами VibePM.

>>> Страница проекта на GitHub

 , , , ,

shkolnick-kun
()

Опубликован эмулятор архитектуры Эльбрус на основе QEMU

Новости — Разработка
Группа Разработка

МЦСТ выпустила эмулятор QEMU для архитектуры E2K. Теперь программы для Эльбруса можно запускать на компьютерах с архитектурой x86‑64. Это откроет платформу для профессионалов, исследователей и энтузиастов, а также упростит разработчикам сборку и тестирование ПО.

Эмулятор qemu-e2k обеспечивает возможность, используя операционную систему семейства Linux запускать прикладные программы для операционных систем семейства Linux в машинных кодах Эльбрус (e2k) на компьютере архитектуры x86-64.

( читать дальше... )

>>> Исходные тексты QEMU от АО "МЦСТ"

 , , ,

IvGrad
()

Изучить С

Форум — Talks

Всем привет! Надоели мне эти скриптовые аркадные языки, повесточка, докеро-голанги и тп, решил заняться изучением С. Тем более что вспомнил о том, что по факту это единственный язык который доставлял удовольствие.

Посоветуйте пожалуйста книгу, которую можно почитать и порешать оттуда заодно задачи если есть.

 , ,

NorthernBlow
()

Senior C-разработчик (ядро Linux, СХД), удалённо

Форум — Job

Привет! Ищу Senior C программиста в IT-аккредитованную компанию, разрабатывающую системы хранения данных и системы виртуализации.

Чем предстоит заниматься:

• Разработка системного программного обеспечения: гибридная СХД; scale-out СХД c поддержкой серверной виртуализации; система мониторинга; внутренние инструменты разработки;

• Разработка уровня ядра Linux: модули файловых, блочных и сетевых подсистем;

• Исследования стороннего ПО;

• Работа с чужими исходниками на разных языках программирования;

• Документирование исходного кода, методик и исследований;

• Сопровождение ПО (разработка патчей, консультирование инженеров).

Требования:

• Коммерческий опыт работы от 5 лет;

• Опыт системного программирования на C, ASM;

• Уверенное знание двух из перечисленных скриптовых языков (Bash, Python, sh, ksh);

• Уверенное знание архитектуры ядра Linux/UNIX/BSD;

• Опыт системного программирования в одном из вариантов Linux/UNIX/BSD;

• Знание английского языка на уровне чтения и восприятия документации.

Что мы предлагаем:

• Официальное трудоустройство по ТК РФ; достойный уровень оплаты труда от 300 т.р. net + квартальные премии;

• Оплачиваемые отпуск и больничные (включая внутренний больничный до 10 дней в год);

• Обучение за счёт компании: внешние курсы, конференции, внутренние тренинги;

• Оплата мобильной связи;

• Подарок на День рождения;

• Корпоративный мерч;

• Удаленный формат работы (для Москвы есть возможность периодически приезжать в офис);

• Технику предоставляем.

Резюме, рекомендации, вопросы в телеграм @olesya_sayhire

 , ,

Olesya_HR
()

Как правильно писать объявление о работе

Форум — Job

Если писать запрос так, как рекомендуется ниже, то его не удалят, а результативность повысится.

Заголовок

  1. Указывайте город. Есть не только Москва и некоторые люди склонны к перемене места.
  2. Указывайте должность (программист, администратор, тестировщик и т.п.)

Содержание

  1. Используйте правильную разметку!
  2. Указывайте город.
  3. Указывайте должность (программист, администратор, тестировщик и т.п.)
  4. Указывайте уровень зарплаты, наличие социального пакета и прочих радостей
  5. Кратко опишите что надо делать на работе (например, что требуется администрировать сеть на 1000 машин на Windows и 15 серверов на Linux, или что требуется программировать сайты на Java)
  6. Не пишите в списке требований весь софт, название которого Вы слышали, это выглядит смешно и странно. Обязательно, чтобы в требованиях было что-то, связанное с Unix/Linux или чем-то открытым.
  7. Если Вы из кадрового агентства, напишите из какого и какого уровня фирма-заказчик, если нет, укажите название фирмы.
  8. Не забудьте оставить координаты для связи.

И последнее, если Ваш браузер имеет проблемы с кодировками, то это Ваши проблемы, а не проблемы сайта. Перекодировать сообщения не будут.

 

beastie
()

Как правильно искать работу

Форум — Job

Disclaimer. Написанный ниже текст является мнением автора, основанным на многих проведенных интервью и на общении с сотрудниками HR. Не является догмой, но, тем не менее, его можно принимать во внимание.

Итак, вам нужна работа в сфере IT на админской/постсейловой/пресейловой/консалтерской должности. Я провел пару сотен собеседований, нанял около 30 (или 40?) человек, ошибался 2 или 3 раза, со всеми нанятыми работал больше года, а с некоторыми больше 5 лет, так что могу рассказать о том, как оно изнутри. Про программистов ничего не скажу, подозреваю, что плюс-минус все то же самое.

0. Зачем люди нанимают сотрудников и как они это делают?

На работу людей нанимают для того, чтобы они работали :-) Буквально, есть задача, есть бюджет, есть коллектив и есть вакансия - должен быть нанят человек, желательно до определенного числа, иначе, вакансию могут отобрать в пользу более расторопных. В ДС последние 10 лет острый дефицит вменяемых кадров, при чем чем дальше, тем хуже становится положение.

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

1. Резюме.

Напишите хорошее резюме, желательно на 2х языках. Что значит хорошее: в нем должны отражаться основные ваши достижения, их не должно быть мало, но и не должно быть много. Например, хорошо написать про общественную работу в ВУЗе, поднятие нужного бизнесу софта или синхронизацию географически удаленных БД, а про то как обжимались кабели можно не писать, так как это вызывает ощущение «больше нечем хвастаться». Нужно написать обо всех своих обучениях и сертификациях. Примеров в сети много, неплохо также завести аккаунт в Linkedin (там как раз нужная структура). Помните, что HR скорее всего не сечет в теме и ищет по ключевым словам. 95% всех резюме, которые я видел были 2х типов: «отлично знаю» == «при мне включали» и «имею представление» == «ну что я могу сказать о вопросе, которому посвятил всего 2 года напряженного труда?» Не впадайте в эти крайности.

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

На счет соц.сетей. Конечно же, первым делом из отобранных резюме извлекается имя, фамилия, дата рождения и город, а по ним ищется вконтактик, фейсбучек, жжшечка. Отсутствие аккаунта ничего не говорит. Наличие же может выйти боком: предпочтения у всех свои, я, например, буду предвзято относиться с стритсракеру со смотрЫ, кому-то могут не понравится фотографии на фоне кустов и пустых бутылок. Однозначный плюс - статьи в ЖЖ «как я компилял ядро» или «как я перепаивал этот китайский роутер». Однозначный минус - дешевые понты вроде «VIP-статус ВКОНТАКТЕ», дакфейсов или фоток на фоне ржавой крысы с видом как будто это новая семерка.

2. Первое интервью.

Говорят, что человека встречают по одежке. Говорят, что первое впечатление так и останется 80% мнения на ближайшие 5 встреч. Я не знаю на сколько это правда, но мне всегда приятно было видеть нейтрально одетых людей в чистой одежде (да, были случаи, когда соискатель совершенно буквально и объективно вонял) с чистыми волосами (и ногтями). Я разделяю любовь к джинсам, берцам, кожанкам и камуфляжу, но считаю, что в первый раз показаться лучше в классическом костюме нейтрального цвета. Потом похвастаете своим офигенным мотоэкипом и прекрасно подогнанным снаряжением, в первый раз ваша задача - не оттолкнуть. Нет костюма - постирайте джинсы и свитер, поверьте просто на слово, что это важно и это влияет.

Отдельное замечание обладательницам красивых форм: не надо их лишне подчеркивать на первом свидании. Иначе, потом будут говорить, что наняли вас за декольте или начальник подумает «вот будут говорить - нанял за декольте!». Не надо это, ни вам, ни начальнику. Потом все покажете.

Ведите себя спокойно, не нервничайте. Помните, что вы тут не первый. Помните, что у вас эта контора не последняя. Помните, что вообще-то вы им нужны больше, чем они вам, даже если это Гугл, а вы - вчерашний выпускник. Но и в другую крайность впадать тоже не надо, не фамильярничайте.

Посмотрите на людей в коридорах. Задайте себе вопрос, хотите ли вы быть похожими на них.

HR говорит про общие вопросы, проверяет формально, отсеивает в основном неадекватов и странных людей. Если его функция простирается дальше, то скорее всего в этой конторе не нужно работать. HR должен рассказать вам про условия труда и соцпакет, обязательно задаст вопрос «чего вы хотите в будущем», на который не надо отвечать «стать тут главным боссом». В будущем вы хотите развиться в техническом плане, познакомиться с интересными людьми и решить сложные и интересные задачи. Важно: например, в Microsoft вам расскажут про многие пряники и плюшки для сотрудников, но только после официального предложения вы узнаете, что «сотрудником» станете дай Бог через год, только если не на косячите и только если вырастут акции, а так - внештатник без пряников.

Интервью с непосредственным руководителем. Это самый важный человек в процессе, он подбирает себе не просто специалиста, а человека, который его лично устраивает. Как правило, люди нанимают похожих на себя. Тут хороший мотоэкип или камуфляж могут отыграть хорошо, а могут навредить. Лично я - не советую, хотя сам отношусь нейтрально.

Некоторые работодатели любят устраивать форменный экзамен просто так, даже если видят, что человек не тянет, некоторые любят задавать задачи на сообразительность типа взвешивания монет и измерения высоты здания барометром. Некоторые любят вопросы типа «вы ввели linux.org.ru в строке адреса браузера и нажали „ввод“, расскажите, что произойдет после этого, постарайтесь успеть до 8 вечера». Некоторые дают тест на бумаге, некоторые просто обсуждают жизнь. Есть конторы, где принято нанимать точно соответствующего человека, есть конторы, где принято учить и воспитывать, требуя только базовые или непрофильные вещи (например: технологиям обучим с любого уровня, а вот английскому - нет).

Если предполагается интервью с топом, то тут главное - просто произвести нормальное впечатление.

3. Скиллы.

Если вы идете наниматься на техническую должность, пожалуйста, освежите в памяти модель OSI, основные топологические схемы сетей, как работает TCP/IP в крупную клетку, что такое DNS, DHCP, CIFS, FTP, HTTP, SMTP, BGP, SSL. Я раньше спрашивал про несимметричное шифрование, сейчас же очень многие не могут внятно ответить «что такое IP-адрес», имея за плечами опыт работы сисадмином, не говоря уже о просьбе отправить письмо по SMTP используя только telnet. Это не приемлемо, объем базовых курсов по сетям и любой операционной системе надо знать.

 

Shaman007
()

Tewi 2.0.0 — текстовый интерфейс для управления торрент-клиентами

Новости — Open Source
Группа Open Source

Состоялся выпуск Tewi 2.0.0 — консольного приложения с текстовым интерфейсом (TUI) для управления BitTorrent-клиентами. Программа позволяет подключаться к демонам Transmission, qBittorrent и Deluge, просматривать и управлять списком торрентов, добавлять новые закачки, выполнять поиск по популярным трекерам. Поддерживаются различные режимы отображения (карточки, компактный, однострочный), просмотр детальной информации о торрентах (файлы, трекеры, пиры), управление категориями и метками, переключение альтернативных лимитов скорости. Интерфейс построен на базе библиотеки Textual. Код написан на Python и распространяется под лицензией GPLv3+.

( читать дальше... )

>>> GitHub

 , ,

anlar
()

Cex.C — making old C cexy again!

Форум — Development

Александр Веденеев пишет:

https://cex-c.org

Cex.C - Comprehensively Extended C Language
No dependency, cross-platform, single header C language extension. Making old C cexy again!

https://github.com/alexveden/cex

Cex.C (officially pronounced /ˈtsɛk.si/ «tsek-see») was born as alternative answer to a plethora of brand new LLVM based languages which strive to replace old C. Cex.C still remains C language itself, with small, but important tweaks that bring a completely different development experience.

LEGAL NOTICE: Any intentional mispronunciation of Cex.C or cexy$ (build system), officially pronounced /ˈtsɛk.si/ («tsek-see»), into an incorrect form may be considered intentional tseksual harassment of the project — which identifies itself with the code gender (it/its) — and may be subject to legal action under the MIT License. /LOL/

$ stat cex.h:

Size: 680288

#define CEX_IMPLEMENTATION
#include "cex.h"

int
main(int argc, char** argv)
{
    io.printf("MOCCA - Make Old C Cexy Again!\n");
    return 0;
}

 , ,

dataman
()

Рабочий офис дома

Галерея — Рабочие места

С момента моей последней фотографии в галерее прошло почти 5 лет. Что-то поменялось, что-то осталось неизменным.

Давайте по порядку.

Прежде всего, я искренне считаю, что удалённая работа – это лучшее, что происходило с рынком труда.

За эти 5 лет я окончательно переехал из Уфы в Москву и тратить по 3 часа в день на дорогу (в обе стороны), чтобы выполнить работу, которую я могу с таким же успехом сделать сидя дома – это просто глупость, как по мне. А протирать штаны и создавать иллюзию бурной деятельности можно и в офисе. Наличие в нём сотрудника вовсе не говорит о том, что он делает что-то полезное.

( читать дальше... )

 , ,

Jefail
()

Новые реакции

Форум — Linux-org-ru

Благодаря @dataman у нас появились две новые реакции: «не нужно» и «грусть-печаль».

 ,

u-235
()

Неосилившим Стругацких

Форум — Talks

Лет 10 тому назад я первый раз пробовал прочитать «Понедельник начинается в субботу». Дошёл до возни на диване и забросил. Вот опять предпринял очередную попытку — продвинулся до обхода института при дежурстве и снова не выдержал.
В Интернете в основном восторженные отзывы о невероятном обилии зачётных шуток чуть ли не через абзац. Мне они как-то совсем не зашли.

Книга довольно популярная в GNU/Linux-кругах. Собственно вопрос: это я один такой неосилятор или есть ещё другие? Проблема на моей стороне?

Ну и за компанию второй вопрос. Другие их произведения так же читаются?

 

urxvt
()

Какой редактор кода или IDE вы используете?

Голосования — Голосования

Прошлый опрос от 08.03.21

Позапрошлый опрос от 30.10.17

  1. Vi (Vim, Neovim, gVim) 287 (40%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. VSCode (VSCodium) 259 (36%)

    ************************************************************************************************************************************************************************************************************************************************************************************************

  3. IntelliJ IDEA (включая PyCharm, CLion, WebStorm и др.) 127 (18%)

    *********************************************************************************************************************************************

  4. Kate 91 (13%)

    *****************************************************************************************************

  5. mcedit 85 (12%)

    **********************************************************************************************

  6. nano 79 (11%)

    ****************************************************************************************

  7. GNU Emacs 71 (10%)

    *******************************************************************************

  8. Qt Creator 66 (9%)

    *************************************************************************

  9. Geany 58 (8%)

    ****************************************************************

  10. Другой (напишу в комментариях) 58 (8%)

    ****************************************************************

  11. Sublime Text 46 (6%)

    ***************************************************

  12. Zed Editor 39 (5%)

    *******************************************

  13. Gedit 30 (4%)

    *********************************

  14. Не пишу и не редактирую код 30 (4%)

    *********************************

  15. Arduino IDE 27 (4%)

    ******************************

  16. Eclipse 27 (4%)

    ******************************

  17. kwrite 22 (3%)

    ************************

  18. Cursor (редактор с AI-ассистентом) 20 (3%)

    **********************

  19. Android Studio 19 (3%)

    *********************

  20. Jupyter Notebook/Lab 19 (3%)

    *********************

  21. KDevelop 18 (3%)

    ********************

  22. Micro 18 (3%)

    ********************

  23. NetBeans 17 (2%)

    ******************

  24. Helix (современный модальный редактор) 12 (2%)

    *************

  25. Mousepad 12 (2%)

    *************

  26. Acme (редактор в стиле Plan 9) 8 (1%)

    ********

  27. Aider (AI-ассистент для программирования в терминале) 3 (0%)

    ***

  28. Kakoune 3 (0%)

    ***

  29. SciTE 3 (0%)

    ***

  30. Wing Python IDE 3 (0%)

    ***

  31. Brackets 2 (0%)

    **

  32. dte 1 (0%)

    *

  33. Lite XL (лёгкий редактор на Lua) 1 (0%)

    *

  34. Lapce (редактор на Rust) 0 (0%)

  35. TEA 0 (0%)

Всего голосов: 1561, всего проголосовавших: 715

 , , ,

Jaeger1999
()

Написан тетрис на «игре жизни»

Форум — Talks

Удивительные люди на codegolf.stackexchange.com написали реализацию тетриса на Conway's Game of Life. Для этого на игре жизни реализовали вычислительную машину Гарвардской архитектуры с процессором, ОЗУ и ПЗУ, программируемую на языке QFTASM (Quest for Tetris Assembly). Потом написали язык Cogol, который компилируется в QFTASM, а на нём уже написали тетрис.

Ввод/вывод осуществляется записью/чтением «памяти». Есть онлайн-интерпретатор QFTASM, который упрощает процесс.

Ведётся работа над QFTASM-бэкэндом к GCC, чтобы программы, например, на C++ можно было запускать в игре жизни.

Ссылка: https://codegolf.stackexchange.com/questions/11880/build-a-working-game-of-te...

 

proud_anon
()

Алготрейдинговый гигант открыл исходный код TernFS для Linux

Новости — Open Source
Группа Open Source

Одна из крупнейших алгоритмических торговых компаний мира XTX Markets, ежедневно обрабатывающая сделки на сумму около 250 миллиардов долларов и оперирующая более чем 650 петабайтами данных для прогнозов цен и торговых алгоритмов, открыла исходный код собственной файловой системы для Linux.

Система получила название TernFS и была создана, когда компания переросла возможности традиционного NFS и других решений для хранения. TernFS предназначена для распределённого хранения крупных неизменяемых файлов — как правило, они не редактируются после создания и имеют размер от нескольких мегабайт. Система рассчитана на масштаб до 10 эксабайт логического пространства, примерно триллион файлов и 100 миллиардов каталогов при подключении до миллиона клиентов. Всё это работает на стандартном оборудовании и обычных сетях Ethernet.

Код выложен на GitHub и распространяется под лицензиями GPLv2+ и Apache 2.0.

>>> Исходники на GitHub

>>> Подробности в блоге компании

 ternfs,

demo13
()

Что такое «денотационная семантика»?

Форум — Science & Engineering

Кто такой Окасаки и за что его надо почитать?

2016, Окасаки Крис, Чисто функциональные структуры данных
1996, Chris Okasaki, Purely Functional Data Structures, 162 страницы

Википедия совсем другое пишет:

Денотационная семантика (англ. denotational semantics) выражениям в программе ставит в соответствие настоящие математические объекты, то есть, выражения обозначают (англ. to denote — откуда «денотационная») их величины)
Важнейшие, в том числе пионерские, результаты построения денотационных семантик получены в работах Д. Скотта (Dana Scott) и К. Страчей (Christopher Strachey) в конце 1960-х — начале 1970-х в Оксфордском университете

Бестиповое λ-исчисление

1557, Роберт Рекорд (Recorde Robert), The Whetstone of Witte, 332 страницы (Оксфордский университет)
ввёл знак (символ) для обозначения равенства = в 1557 году (в 16-м (XVI) веке).
«В континентальной Европе знак = был введён Лейбницем только на рубеже XVII—XVIII веков, то есть более чем через 100 лет после смерти Роберта Рекорда.»

1936, Алонзо Чёрч, An Unsolvable Problem of Elementary Number Theory (Принстонский университет)
представил безтиповое лямбда-исчисление в статье «Унифицированная теория формальных систем», опубликованной в апреле 1936 года в журнале American Journal of Mathematics.

Переменные: x, y, z, … являются λ-термами.
Абстракция: Если M λ-терм и x — переменная, то (λx.M) — λ-терм (называется абстракцией).
Аппликация: Если M и N λ-термы, то (M N) — λ-терм (называется аппликацией).

само по себе λ-исчисление — это лишь синтаксис, набор правил для работы с символами.

Чтобы оно «обрело смысл» или «семантику», нужно связать эти символы с чем-то осмысленным, например, с математическими объектами.

Смысл (семантика) в данном контексте означает, что каждый термин λ-исчисления будет интерпретироваться как некоторый математический объект, а операции над терминами будут соответствовать операциям над этими объектами.

Двоичное и десятичное

Можно определить функции:

  • добавления единицы
  • удвоения
  • удесятирения

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

Аппликативный синтаксис

Аппликативный синтаксис эволюционировал из работ Шёнфинкеля, Карри и Чёрча. Функции обозначаются переменными или лямбда-абстракциями. Именование функций в аппликативном синтаксисе безтипового лямбда-исчисления осуществляется через присвоение переменным абстракций. Алонзо Чёрч (Alonzo Church), хотя и известен своей нотацией с лямбда-абстракцией и явными скобками, в некоторых своих работах также использовал более компактные формы записи, близкие к аппликативному синтаксису, особенно при работе с комбинаторами. Например, вместо того чтобы постоянно писать λx.x+1, он мог ввести сокращение f для этой функции, это записывалось в духе:

f≡λx.x+1

Таким образом, Чёрч ввёл операцию именования как связь между лямбда-выражением и символическим именем. Однако он ещё не привязал это к конкретному синтаксису, так как его работа была сосредоточена на чистой теории. Именование как операция — это идея Чёрча, использование для неё знака равенства закрепилось благодаря разработчикам функциональных языков, создатель MetaLanguage (ML) - Робин Милнер (1970-е годы).
Лямбда-абстракция (определение анонимной функции) записывается как λx.t, где x — аргумент, а t — тело функции.
Определим переменную f и присвоим ей лямбда-выражение (имеющее в безтиповом λ-исчислении единственный возможный для переменных тип «функция») в качестве значения, например функцию, которая возвращает переданный аргумент:

f=(λx.x)
f=λx.x

Теперь мы можем использовать переменную f в выражениях. Применим f к другому лямбда-выражению, например, (λy.y):

((λx.x) (λy.y))
((f) (λy.y))

В аппликативном синтаксисе приложение функции f к аргументу x записывается как

f λy.y

без скобок, a применение функции g к двум аргументам w и z — как

g w z 

Бесскобочность достигается за счёт соглашения о левоассоциативности (см. также Каррирование). Выражение g w z интерпретируется как (g w) z, то есть сначала g применяется к w, а затем результат применяется к z.

Семантика

Теоретико-множественный подход
Категорный подход

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

нужно:

  • Определить множество D, элементы которого будут значениями λ-выражений
    Без такого множества D мы не можем корректно описать, что означают выражения λ-исчисления. Мы не можем сказать, какие у них значения. А без возможности приписать выражениям значения нельзя говорить об их смысле. Без подходящего D мы не можем задать интерпретацию термов и операций λ-исчисления.
  • Интерпретировать функции как элементы этого множества
    (D должно содержать все функции из D в D, то есть D должно содержать множество всех функций D → D)

построение такого множества D - нетривиальная математическая задача (из-за парадокса Кантора). Ее решение привело к развитию теории доменов и других разделов математики.

идея фиксированной точки, когда D строится как фиксированное множество, удовлетворяющее

D≅D→D

И вот в этом месте я не осилил. Разъясните, бегом пожалуйста, люди злые добрые.

Как мне этим вашим лямбда-исчислением описать байт, его значения, и операции с ним? Нумералы Чёрча (функции с двумя параметрами) я могу написать, но дальше дело не идёт.

 ,

Shushundr
()