The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В Rust-репозитории crates.io выявлен вредоносный пакет rustdecimal, opennews (??), 11-Май-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


51. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +3 +/
Сообщение от Аноним (51), 11-Май-22, 11:20 
а бывают не логические ошибки? Так-то выход за границы буфера это тоже логическая ошибка
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

52. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +3 +/
Сообщение от aname (?), 11-Май-22, 11:33 
Ты его сейчас поломаешь
Ответить | Правка | Наверх | Cообщить модератору

145. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  –1 +/
Сообщение от warlockemail (??), 12-Май-22, 01:42 
Не-а, выход за пределы буфера в C — это не логическая ошибка. Логическая — это когда, несмотря на её наличие, программа является корректным, грамматически правильным текстом на соответствующем языке. Но выход за границы буфера — это undefined behavior, а программа, допускающая undefined behavior, не является грамматически корректной. Собственно, как это ни пародоксально, ни одна программа на C не содержит undefined behavior. Потому что те тексты программ, которые undefined behavior содержат, C-программами не являются.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

149. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +/
Сообщение от Аноним (-), 12-Май-22, 09:34 
> программа, допускающая undefined behavior, не является грамматически корректной.

Ты все перепутал. Программа, проходящая компиляцию (с проверкой типов и тп) - грамматически корректна.

Но если она все равно неправильно работает, то она семантически некорректна.

Грамматика, смысл/семантика - это логики разного уровня.

> выход за пределы буфера

В rust'е ловится рантаймом (который "отсутствует"), а не во время компиляции.

Ответить | Правка | Наверх | Cообщить модератору

156. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +1 +/
Сообщение от warlockemail (??), 12-Май-22, 12:18 
> Программа, проходящая компиляцию (с проверкой типов и тп) - грамматически корректна.

Только если забыть про undefined behavior. Программы с undefined behavior — это как раз класс грамматически невалидных программ, которые, одинако, _могут_ не отсеиваться компилятором (но могут и отсеиваться как некорректные, хотя чаще это за пределами возможностей компилятора). Работать при этом она может даже «правильно», но на самом деле просто нельзя спрашивать о семантической корректности такой программы.

> В rust'е ловится рантаймом (который "отсутствует"), а не во время компиляции.

В простых (тривиальных случаях) может и во время компиляции ловится. Но это Rust,

Ответить | Правка | Наверх | Cообщить модератору

160. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +1 +/
Сообщение от Аноним (-), 12-Май-22, 14:59 
> грамматика

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

Что такое грамматика языка (программирования)?

"Крокодил съел солнце" - это грамматически правильно? А по смыслу/семантике? А в семантике (смысле) детской сказки?

> undefined behavior
> грамматически невалидных программ

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

Это другой уровень логики.

Я хочу написать _грамматически_правильную_конструкцию_ языка, в которой будет неопределенное поведение (крокодил съел солнце).

Ответить | Правка | Наверх | Cообщить модератору

168. "В Rust-репозитории crates.io выявлен вредоносный пакет rustd..."  +/
Сообщение от warlockemail (??), 13-Май-22, 14:53 
Грамматика — это совокупность правил, которым должен удовлетворять текст программы, чтобы считаться грамматически-правильным. В случае естественных языков определение аналогично. Грамматическая правильность в случае естественных языков — штука неточная, хотя в большинстве случаев её можно считать точной.

В случае языка программирования представляется наиболее естественным считать грамматически-корректными такие тексты, для которых любой идеальный (соответствующий стандарту и не содержащий багов) компилятор гарантированно продуцирует некоторый выходной (объектный/бинарный) файл. Для программы, содержащей undefined behavior, компилятор не обязан этого делать. Может, но не обязан.

> вполне можно придумать ситуацию, когда именно хочется получить "неопределенное поведение".

Не всё, что можно придумать, можно реализовать на практике.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру