[Перевод] Ouroboros — язык программирования почти без синтаксиса

От переводчика: статья немного сокращена по сравнению с оригиналом, исключён раздел об этимологии слова "Ouroboros", а также полные каламбуров отсылки автора к латинским, прочим романским и английским корням. Далее - от автора. Можно ли создать язык программирования, в котором нет синтаксиса? Кажется, что это чистое противоречие. Вся суть языков программирования заключается в синтаксисе, плюс немного в генерации и оптимизации кода, настройке сред выполнения и т.д. Но с точки зрения программиста — именно синтаксис самая важная часть языка. Когда вы приступаете к изучению нового языка программирования, вам обязательно придётся уделить время освоению синтаксиса. Можно ли просто избавиться от синтаксиса или, как минимум, предельно его упростить? Другой вариант — можно ли сделать синтаксис произвольным, чтобы программист, пишущий код, мог сам для себя его определять? Именно этих целей мы попытались достичь, создав язык Ouroboros. Его синтаксис максимально прост. Настолько, что в этом языке даже не предусмотрен синтаксический анализатор. В нём есть только лексический анализатор, код которого составляет 20 строк.

https://habr.com/ru/articles/974074/

#Java #интерпретатор #эксперимент #синтаксис

Ouroboros — язык программирования почти без синтаксиса

Введение Можно ли создать язык программирования, в котором нет синтаксиса? Кажется, что это чистое противоречие. Вся суть языков программирования заключается в синтаксисе, плюс немного в генерации и...

Хабр

Деструктуризация в JavaScript

Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов стала деструктуризация — способ получения данных Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript . В этом тексте на примерах разберемся, как работает синтаксис и как деструктуризировать массив. Подробности под катом!

https://habr.com/ru/companies/selectel/articles/943736/

#javascript #selectel #js #javascrip #деструктуризация_в_JS #синтаксис #массив #деструктурировать_массив #уроки_программирования

Деструктуризация в JavaScript

Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов...

Хабр

Деструктуризация в JavaScript

Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов стала деструктуризация — способ получения данных Привет, Хабр! Меня зовут Александр Дудукало, я автор

https://habr.com/ru/companies/selectel/articles/943736/

#javascript #selectel #js #javascrip #деструктуризация_в_JS #синтаксис #массив #деструктурировать_массив #уроки_программирования

Деструктуризация в JavaScript

Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов...

Хабр

Почему алгоритм плохо защищает от социальной инженерии: мысленный эксперимент в мире кантианцев-манипуляторов

Что, если самые надёжные системы защиты — двухфакторная аутентификация, тренинги по социнженерии, чёрные списки — на самом деле работают против нас? Что если каждое новое правило, каждый баннер «Осторожно, фишинг!» не укрепляет безопасность, а формирует в пользователе постоянное ощущение угрозы — и делает его уязвимее? Представьте мир, где все действуют разумно: логично, автономно, добродетельно. И при этом хладнокровно убивают или манипулируют, потому что их «добродетель» проходит тест на всеобщность. В этом мысленном эксперименте формальная логика не спасает от морального кошмара. Алгоритм не различает помощь и манипуляцию — он видит синтаксис, но не смысл. А настоящая битва идёт не за пароли, а за интерпретацию. Где проходит грань между заботой и контролем? Когда доверие становится оружием? Чтобы увидеть эти ловушки, нужен не просто код, а взгляд гуманитария. Иначе мы будем строить идеальные системы, в которых человек постепенно перестаёт быть субъектом.

https://habr.com/ru/articles/937510/

#безопасность #безумие #безопасность_в_сети #семантика #логика #синтаксис #синтаксический_анализ #социальная_инженерия #этика

Почему алгоритм плохо защищает от социальной инженерии: мысленный эксперимент в мире кантианцев-манипуляторов

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

Хабр

Лот 207 Аукцион 76-1.

Сакулин П.Н. Сборник статей для упражнения в знаках препинания и для синтактического разбора. Пособие для средних и низших учебных заведений. 3-е изд. Тихомирова. Москва, 1907. 78 с. Твердый владельческий переплет, 21 х 15 см. Без корешка, крышки переплета отдельно от блока.

https://ru.bidspirit.com/ui/lotPage/source/search/auction/63486/lot/120445

#Сакулин #Статьи #Знаки #Препинания #Синтаксис #Учебное #Пособие #Тихомирова #Москва #Издание

Будущее ИИ — формальные грамматики

Почему даже самая мощная LLM иногда выдаёт бессмысленные фразы и противоречия? Всё дело в экспоненциальном росте вариантов (N^M) и свободном копировании человеческих ошибок. Читайте статью, чтобы узнать, как мы с помощью формальных грамматик превращаем хаотичную генерацию в управляемый синтез, усиливая роль семантики и соблюдая структурные правила.

https://habr.com/ru/companies/postgrespro/articles/922260/

#формальные_языки #формальные_грамматики #guided_decoding #xgrammar #sql_generator #vllm #формальные_языки_и_грамматики #синтаксис #семантика #llm

Будущее ИИ — формальные грамматики

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

Хабр

[Перевод] Об (отсутствии) синтаксической поддержки обработки ошибок в Go

Программисты на Go уже давно и долго жалуются на слишком многословную обработку ошибок. Все мы близко (а иногда и болезненно) знакомы со следующим шаблоном кода: x, err := call() if err != nil { // обработка err} Проверка if err != nil встречается настолько часто, что может становиться объёмнее остального кода. Обычно это происходит в программах, выполняющих много вызовов API, в которых обработка ошибок рудиментарна и они просто возвращаются. Некоторые программы в итоге выглядят примерно так: func printSum(a, b string) error { x, err := strconv.Atoi(a) if err != nil { return err } y, err := strconv.Atoi(b) if err != nil { return err } fmt.Println("result:", x + y) return nil } Из десятка строк кода тела этой функции реальную работу выполняют только четыре (вызовы и последние две строки). Остальные шесть строк — это шум. Код слишком многословен, поэтому неудивительно, что жалобы на обработку ошибок уже годами находятся на вершине списков в опросах разработчиков. (Какое-то время жалобы на обработку ошибок обгоняла только досада из-за отсутствия дженериков, но теперь, когда Go поддерживает дженерики, обработка ошибок снова вернулась на первое место.) Команда разработчиков Go воспринимает отзывы сообщества со всей серьёзностью, поэтому мы много лет пытались придумать решение этой проблемы.

https://habr.com/ru/articles/915468/

#обработка_ошибок #синтаксис #error_handling #ошибки

Об (отсутствии) синтаксической поддержки обработки ошибок в Go

Программисты на Go уже давно и долго жалуются на слишком многословную обработку ошибок. Все мы близко (а иногда и болезненно) знакомы со следующим шаблоном кода: x, err := call() if err != nil { //...

Хабр

Часть 1. Почему Go-ассемблер и векторизация могут быть полезны: идея для ускорения

Когда речь заходит о производительности в Go, большинство разработчиков полагаются на стандартные библиотеки и встроенные инструменты оптимизации, но компилятор Go не всегда генерирует оптимальный машинный код. В таких случаях можно взять дело в свои руки и использовать ассемблерные инструкции для ускорения критически важных участков. Ассемблер может показаться сложным и пугающим, но он открывает большие возможности для работы с низкоуровневыми оптимизациями. Готовы разобраться, как это работает? Тогда погнали! Привет, Хабр! Меня зовут Игорь Панасюк, я работаю в Яндекс, преподаю в ИТМО, а также в свободное время выступаю на конференциях, делюсь опытом в соцсетях и помогаю развитию Go-сообщества.

https://habr.com/ru/companies/oleg-bunin/articles/905966/

#golang #optimization #intermediate_representation #ssa #ассемблер #машинный_код #simd #intrinsic #синтаксис #VMOV

Часть 1. Почему Go-ассемблер и векторизация могут быть полезны: идея для ускорения

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

Хабр

[Перевод] Самый странный лексический синтаксис, который я обнаружила, исследовав 42 языка программирования

Программирование — это не только алгоритмы и логика, но и удивительное разнообразие синтаксиса языков. Работая над новым средством подсветки синтаксиса для llamafile, разработчик Justine Tunney* исследовала 42 языка программирования — от классического C и экзотического Tcl до мощного Ruby. Justine делится своими открытиями о том, насколько причудливым и непредсказуемым может быть лексический синтаксис. Например, триграфы в C — устаревший инструмент для поддержки клавиатур с ограниченными символами, фиксированные длины строк в FORTRAN, вложенные комментарии в Haskell или строки с двойными квадратными скобками в Lua. Ruby вообще оказался чуть ли не самым сложным языком для подсветки из-за его контекстно-зависимого синтаксиса. Под катом вы найдете описание разработки инструмента подсветки и исследование того, как языки программирования решают одни и те же задачи по-разному. Если вам интересны синтаксис, языковые особенности и сложности лексического анализа – эта статья для вас. *Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис

https://habr.com/ru/companies/ncloudtech/articles/871692/

#синтаксис #синтаксис_языков #синтаксис_javascript #синтаксис_c #ruby #перевод #мойофис #perl #basic #ada

Самый странный лексический синтаксис, который я обнаружила, исследовав 42 языка программирования

Программирование — это не только алгоритмы и логика, но и удивительное разнообразие синтаксиса языков. Работая над новым средством подсветки синтаксиса для llamafile, разработчик Justine Tunney*...

Хабр

Gambit Scheme: переопределяем скобки

Рассмотрим недавно вошедшую в Gambit Scheme возможность по переопределению семантики скобок. Gambit Scheme – используемый автором диалект Scheme, имеющий очень быстрый интерпретатор и компилятор с рядом полезных расширений, которые могут быть построены из исходного кода без внешних зависимостей, а также в полной мере поддерживают интернациональные символы UTF-8.

https://habr.com/ru/articles/872704/

#Scheme #Lisp #Программирование #синтаксис

Gambit Scheme: переопределяем скобки

Рассмотрим недавно вошедшую в Gambit Scheme возможность по переопределению семантики скобок. Gambit Scheme – используемый автором диалект Scheme, имеющий очень быстрый интерпретатор и компилятор с...

Хабр