Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Погрузитесь в логическую головоломку: откручивайте болты из планок на самых сложных уровнях! Вы не только расслабитесь в конце сложного дня, но еще и натренируете свой мозг, решая увлекательные задачки. Справитесь с ролью опытного мастера? Попробуйте свои силы в режиме онлайн бесплатно и без регистрации!

Головоломка. Болты и Гайки

Казуальные, Гиперказуальные, Головоломки

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

IT + Скриншот

С этим тегом используют

Программирование IT юмор Программист Юмор Работа Картинка с текстом Разработка Комментарии на Пикабу Комментарии Twitter Мат Переписка Все
947 постов сначала свежее
548
Jeanrussobatiste
Jeanrussobatiste
12 часов назад

Смешное⁠⁠

Смешное Политика, Русофобия, Скриншот, Забавное, Комментарии, X (Twitter), Юмор, Грустный юмор, IT юмор, IT, Азербайджан
Показать полностью 1
Политика Русофобия Скриншот Забавное Комментарии X (Twitter) Юмор Грустный юмор IT юмор IT Азербайджан
90
48
Mercury13
2 дня назад
Серия Доступно об АйТи

Ответ на пост «Потому что кожаные должны страдать?»⁠⁠1

Доступно об АйТи: Почему Python сам не может добавить кавычки?

У меня есть две серии, «Детские вопросы» и «Доступно об АйТи» — вопрос подходит к обеим.

Ответ на пост «Потому что кожаные должны страдать?» Юмор, Картинка с текстом, Скриншот, IT, IT юмор, Программирование, Компилятор, Ответ на пост, Длиннопост

Мем, вызвавший мою заметку

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

А теперь давайте расскажу, как происходит разбор любого языка.

Я не настолько силён в Python, писать простенькие скрипты могу, но синтаксис ещё не засел в подкорку — так что разрешите за пример брать Паскаль и Си. Начнём со строчки Паскаля (не совсем стандартного, скорее Delphi, но пусть будет).

procedure Print(x : string = '');

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

ключевое слово PROCEDURE
идентификатор (имя) PRINT
знак (
идентификатор X
знак :
идентификатор STRING
знак =
строка пустая
знак )
знак ;

Этот поток слов и знаков идёт на синтаксический анализ, и он происходит так.

  1. Видим ключевое слово PROCEDURE, переходим в режим «заголовок процедуры».

  2. Видим идентификатор PRINT, это название процедуры.

  3. Видим знак (, переходим в режим «список параметров».

  4. Видим идентификатор X, переходим в режим «однотипные параметры».

  5. Видим знак :, переходим в режим «тип».

  6. В режиме «тип» получается считать только идентификатор STRING.

  7. В режиме «однотипные параметры» видим знак равенства и считываем значение по умолчанию (пустую строку), разрешите дальше не расписывать.

Вот этот разбор «видим-переходим» самый простой и пишется опытным программистом по наитию.

Язык Си действует сложнее, аналогичную строку

void print(char* x = "")

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

<direct-declarator> ::= <identifier>
| ( <declarator> )
| <direct-declarator> [ {<constant-expression>}? ]
| <direct-declarator> ( <parameter-type-list> )
| <direct-declarator> ( {<identifier>}* )

(специально нашёл именно тот кусок языка Си, что относится к нашей строчке.)

Другими словами, за разбором компьютерных языков выстроена немаленькая теория.

А что будет, если язык будет подчищать за человеком такие ошибки?

Первое. Часто подобные предположения неоднозначны. Возьмём процедуру посложнее:

procedure Print(x : string = ''; y : integer = 0);

…и вызовем её Print('text, 10); Оба места, где можно поставить закрывающуюся кавычку — после text или после 10 — дают корректный вызов. А может, программист вообще не хотел открывать кавычку и text — это чьё-то имя (идентификатор)?

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

Третье. Если окидывать постоянно, начнётся такое: при удлинении текста вдвое время сборки повысится вчетверо. Мой хобби-проект «Юникодия» (только собственные файлы, написанные человеком — без библиотек, программно генерируемых и файлов данных) занимает 1,2 мегабайта на языке Си++. Мой рабочий проект, который пишется бригадой примерно из 15 прогеров,— сотни мегабайт. Компиляция таких монстров будет занимать вечность!

Ускоритель компиляции Си++ под названием Unity (не путать с одноимённым игровым движком!) работает так: когда программа состоит из тысячи модулей, он объединяет их по 10, и получается 100 штук. Работает Unity именно потому, что в Си++ всё наоборот: один длинный модуль компилируется быстрее десяти коротких.

Четвёртое. Это бессмысленно удлиняет спецификацию, а главное — стройная теория формальных языков, которую задел по поверхности, перестаёт работать. Даже если условный Бьярне Гослинг (комбинация имён Бьярне Строуструп, автор Си++, и Джеймс Гослинг, автор Java) напишет свой личный язык с таким сервисом, существует множество программ более тупых, чем компиляторы, которым, тем не менее, нужен корректный исходный текст.

  • Начнём с форматёров — они берут исходный текст и расставляют в нём отступы в соответствии с принятой в конторе системой.

  • В бытность программистом Java для мобилок я сделал небольшой препроцессор языка, объединявший несколько модулей в один, для экономии размера архива — чтобы можно было на освободившееся место втиснуть графику и уровни.

  • В ту же степь — вышеупомянутый ускоритель Unity.

  • Есть система локализации Gettext — она просматривает программу на предмет строк и спрашивает у программиста: какие из них подлежат переводу? Те, что подлежат, она вносит в языковый ресурс.

Пятое. А это уже реальный случай с языком Go от Google. Языки типа Паскаля, к которым относится и Go, имеют свободный синтаксис (расстановка пробелов и переводов строк не важна). Такие языки традиционно после каждого оператора ставят точку с запятой, и чтобы избавиться от «рака точек с запятой» и в то же время лучше задействовать доступный инструментарий, они решили автоматически расставлять точки с запятой ещё до лексического анализа — именно так, перевод строки не внесён в синтаксис языка!

Привело это к тому, что годятся не все стили текста.

func f() { // Этот стиль работает

}

func g() // А этот нет — тут автомат ложно поставит точку с запятой

{

}

Вот как-то так, спасибо за внимание!

Показать полностью
[моё] Юмор Картинка с текстом Скриншот IT IT юмор Программирование Компилятор Ответ на пост Длиннопост
28
6
Firkraag
Firkraag
4 дня назад
Типичный программист

Ответ на пост «Весь АйТи в одной картинке»⁠⁠3

Ответ на пост «Весь АйТи в одной картинке»
[моё] IT юмор IT Программирование Скриншот Ответ на пост
3
Партнёрский материал Реклама
specials
specials

Только каждый третий пикабушник доходит до конца⁠⁠

А сможете ли вы уложить теплый пол, как супермонтажник?

Проверить

Ремонт Теплый пол Текст
YourSavior
YourSavior
4 дня назад

Ответ на пост «Весь АйТи в одной картинке»⁠⁠3

Ответ на пост «Весь АйТи в одной картинке» IT юмор, IT, Программирование, Скриншот, Видео, Вертикальное видео, Короткие видео, Ответ на пост, Длиннопост
Ответ на пост «Весь АйТи в одной картинке» IT юмор, IT, Программирование, Скриншот, Видео, Вертикальное видео, Короткие видео, Ответ на пост, Длиннопост
Ответ на пост «Весь АйТи в одной картинке» IT юмор, IT, Программирование, Скриншот, Видео, Вертикальное видео, Короткие видео, Ответ на пост, Длиннопост
Показать полностью 3
[моё] IT юмор IT Программирование Скриншот Видео Вертикальное видео Короткие видео Ответ на пост Длиннопост
0
3816
tproger.official
tproger.official
5 дней назад
Типичный программист

Весь АйТи в одной картинке⁠⁠3

Весь АйТи в одной картинке
IT юмор IT Программирование Скриншот
234
12
BorschRusso
BorschRusso
5 дней назад

Красавцы!⁠⁠

Красавцы! Россия, Соревнования, Школьники, IT, Образование, Сингапур, Медали, Гордость, Учеба, Скриншот, Ссылка

Команда из России заняла второе место в командном зачете по количеству золотых медалей на первой Международной олимпиаде по кибербезопасности (ICO) среди старшеклассников, которая прошла в Сингапуре, сообщает пресс-служба Центрального университета.

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

В финале олимпиады сборная России встретилась с 128 школьниками из 25 стран, включая Австралию, Канаду, Данию, Гонконг, Израиль, Италию, Японию, Лаос, Макао, Малайзию, Мексику, Сингапур, Шри-Ланку, Швецию и другие.

Финал состоял из двух туров. В первом старшеклассники в течение 3 часов решали 7 задач повышенной сложности по криптографии, бинарным уязвимостям, веб уязвимостям и реверс-инжинирингу. Второй тур длился 5 часов и содержал дополнительные задачи на пентест, стеганографию и форензику.

Серебро и второе место в общекомандном зачете на олимпиаде обеспечили достижения участников сборной в индивидуальном зачете. Обладателями золотых медалей стали Макстм Никитин и Алексей Новиков из Москвы и Ильдар Хужиахметов из Казани. Серебряные медали завоевали московские школьники Георгий Балашов, Егор Заборов и Георгий Лагутин. "Бронзу" получили Максим Еронин и Михаил Селин из Москвы.

Также в Сингапуре в состав Международного комитета олимпиады была избрана руководитель привлечения абитуриентов и олимпиадного трека Центрального университета Екатерина Процко, а тренер по CTF Центрального университета, главный тренер сборной России на Олимпиаде Максим Смирнов вошел в состав научно-технического комитета, который будет разрабатывать формат проведения олимпиады и задания для участников.

"Для нас это не первый опыт участия в соревнованиях такого масштаба — в прошлом году мы успешно подготовили победителей столь же престижной Международной олимпиады по искусственному интеллекту. Тогда наша команда обошла участников из 39 стран, став безоговорочным победителем. Развитие олимпиадного движения — одно из ключевых направлений работы Центрального университета", - приводится в сообщении комментарий ректора вуза Евгения Ивашкевича.

Как отметила директор по работе с персоналом "Лаборатории Касперского" Марина Алексеева, "возможность протестировать навыки, которые, безусловно, будут востребованы в профессиональной жизни, очень важна не только для развития самих участников, но и для повышения уровня международной кибербезопасности в будущем".

Источник

Показать полностью 1
Россия Соревнования Школьники IT Образование Сингапур Медали Гордость Учеба Скриншот Ссылка
2
14
Zavod96.vk
Zavod96.vk
6 дней назад
Атеисты

Отношения с кнопкой: всё сложно...⁠⁠

Весь вечер жму. Не понимаю, почему она никак не нажимается? Я не в её вкусе?

Отношения с кнопкой: всё сложно... Пожертвования, Сайт знакомств, Религия, IT, Донат, Скриншот
Отношения с кнопкой: всё сложно... Пожертвования, Сайт знакомств, Религия, IT, Донат, Скриншот
Показать полностью 1
[моё] Пожертвования Сайт знакомств Религия IT Донат Скриншот
2
19
Perfocrat
Perfocrat
7 дней назад
Специфический юмор

Этап №9⁠⁠

Этап №9
[моё] Скриншот Странный юмор IT IT юмор
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии