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

Башня

Аркады, Строительство, На ловкость

Играть

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

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

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

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

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

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

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

Эльбрусовский компилятор lcc в эфире⁠⁠

Эльбрусовский компилятор lcc в эфире

Если кто-то хочет поиграться с lcc интерактивно и из браузера, то собственно я работаю над его поддержкой в compiler-explorer.

https://ce.mentality.rip/
Эльбрусовский компилятор lcc в эфире Эльбрус, Компилятор, Эфир
Эльбрус Компилятор Эфир
7
Bxuduebhxyyche
Bxuduebhxyyche
4 года назад

Компилятор запутался⁠⁠

Даже не знаю к чему это больше относится - к эзотерике, юмору или программированию

Компилятор запутался C++, Компилятор, Ошибка

Но если кто-то всё же знает, что это и как это чинить, буду очень признателен Вашему совету в комментариях.

P.S.: Проблема в макросах windows.h

C++ Компилятор Ошибка
12
3156
mitrosiy
mitrosiy
4 года назад
IT-юмор

Компилятор⁠⁠

Компилятор IT, Компилятор, Программирование

Безумие — это точное повторение одного и того же действия. Раз за разом, в надежде на изменение.

Показать полностью 1
IT Компилятор Программирование
141
598
asmodeirus
asmodeirus
4 года назад

Жизнь программиста⁠⁠

Жизнь программиста Картинка с текстом, Программирование, Кусь, Кот, Компилятор, IDE
Показать полностью 1
Картинка с текстом Программирование Кусь Кот Компилятор IDE
46
126
aquah
4 года назад
IT-юмор

Ответ на пост «Когда кодил весь день,но не запускал приложение»⁠⁠1

Когда ты senior или тимлид и команда кранчит(херачит на результат в ограниченных сроках)

IT Программирование Программист Боль Компилятор Видео Ответ на пост
4
2148
asmodeirus
asmodeirus
4 года назад
IT-юмор

Когда кодил весь день,но не запускал приложение⁠⁠1

IT Программирование Видео Программист Боль Компилятор Том и Джерри
107
14
vedmedrf
vedmedrf
5 лет назад
IT News

Безопасность критической инфраструктуры. В чем реальные преимущества процессора «Эльбрус»⁠⁠

Сейчас некоторые специалисты говорят, что процессоры «Эльбрус» могут заменить западные образцы. Так ли это? В чем отечественные разработки могут конкурировать с западными аналогами? Эти и другие вопросы мы задали Константину Александровичу Трушкину, заместителю генерального директора по маркетингу АО «МЦСТ», которое занимается разработкой процессоров «Эльбрус».

Трушкин К.А.: Добрый день. Компания была образована в апреле 1992 года. Мера эта была связана с развалом Советского Союза, с развалом отрасли промышленности, связанной с разработкой и производством вычислительной техники. Группа специалистов во главе с Александром Киировичем Кимом образовала акционерное общество, которое назвали ЗАО «МЦСТ» — Московский центр SPARC–технологий.


Началось все с очень тесного сотрудничества с фирмой Sun, которая в тот момент искала таланты в России. И вот как раз высококлассные специалисты, которые вышли из стен Института точной механики и вычислительной техники, оказались весьма востребованными и показали свой уровень подготовки тем, что очень быстро спроектировали логическую модель первого 64-х разрядного микропроцессора фирмы Sun, который назывался Sun UltraSPARC.


Это не была «основная» логическая модель, на основе которой был создан процессор UltraSPARC, а отладочная проверочная модель, которая позволила быстро разработать компилятор для этого процессора и проверить функционирование основного проекта.

Это получилось настолько хорошо, что фирма Sun пошла нам навстречу и подарила набор компьютеров Sun SparcStation и средств автоматического проектирования для разработки микросхем. Такого в России ни у кого в то время не было — это был царский подарок. И кроме того, фирма Sun дала право коллективу ЗАО «МЦСТ» разрабатывать собственные микропроцессоры, совместимые с системой команд SPARC, и лицензировала операционную систему «Солярис» в исходных кодах. Это позволило МЦСТ очень быстро сделать несколько моделей микропроцессоров, которые были совместимы с этой системой команд.


Уже в 2001 году МЦСТ R–150 стал первым серийным процессором фирмы МЦСТ.


Микропроцессор МЦСТ R–500, выпущенный в 2004 году, получился достаточно массовым. Это хороший процессор, экономичный, но он был сделан именно как процессор, то есть контроллер памяти не был в него интегрирован, и, соответственно, требовалась специальная программируемая логика для реализации контроллера памяти и периферии.


Следующий процессор в этой линейке был МЦСТ R–500С. Он вышел в 2007 году. Это уже была система на кристалле, где всё было интегрировано вместе — два ядра и периферия. Этот процессор оказался действительно удачным, то есть можно было сделать относительно дешевую систему на его основе. Он не был мощным, но он таким и не разрабатывался.

Следующим процессором в 2010 году стал первый 64-х разрядный SPARC–совместимый процессор фирмы МЦСТ, он был совместим с системой команд SPARC версии 9, этот четырехъядерный процессор с частотой 1 ГГц оказался уже на хорошем, современном уровне производительности. Он и сейчас востребован. Он оказался экономичным, и по уровню производительности сопоставим с первыми процессорами Atom фирмы Intel.


На этом линейка процессоров SPARC у нас не закончилась. В 2018 году мы завершили разработку микропроцессора МЦСТ R–2000 — это уже частота 2 ГГц, 8 ядер, и он выполняет до двух команд в такт с переупорядочиванием, то есть это полноценный out–of–order RISC-процессор. Это уже хороший мощный процессор, который можно использовать в серверах, в сетевых устройствах, в рабочих станциях и во встраиваемой технике. Это самый мощный процессор в нашей линейке SPARC–совместимых процессоров.


Следующий процессор, который мы разрабатываем, будет называться МЦСТ R-2000+, это будет двухъядерный процессор со встроенным графическим ядром, тоже система на кристалле, но уже с современными интерфейсами. Его уже можно будет применять для планшетов, ноутбуков, терминалов, в общем, для малопотребляющих, экономичных устройств.


Линейка процессоров SPARC возникла не случайно, она — наша первая удача, но не эта линейка является носителем основных компетенций и идей команды МЦСТ.

ИА КВ: Расскажите немного об истории процессора «Эльбрус».


Трушкин К. А.: Самая главная и интересная наша линейка — это процессоры «Эльбрус», которые разработаны на основе идей, выношенных еще в советское время. Тогда планировалось разработать супер–ЭВМ под названием «Эльбрус-3». «Эльбрус–3» — была передовая для того времени машина, которая должна была быть построена по принципу широкого командного слова. К сожалению, не удалось этот проект довести до конца: проект был запущен, но компьютер «Эльбрус–3» не был в полном объеме собран и не был налажен.


В 1994 году он был разобран, осталось только несколько плат, которые до сих пор находятся у нас и появятся в музее МЦСТ, который мы планируем скоро открыть. И первый микропроцессор серии «Эльбрус», который был выпущен «в кремнии» спустя 10 лет, во многом унаследовал идеи именно этого суперкомпьютера, но не только его — часть технологий унаследованы еще со времени супер-ЭВМ «Эльбрус–1» и «Эльбрус–2».


Этот микропроцессор, который назвали просто «Эльбрус» (его полное наименование — 1891ВМ4Я), находился в проработке с конца 1990 годов. Как и МЦСТ R500, он был без встроенного контроллера памяти. То есть это было «голое» ядро. Для него использовалась программируемая матрица в качестве «северного моста» (контроллера памяти), а в качестве «южного моста» использовался чипсет Intel 440BX. Первый компьютер на базе этого микропроцессора, двухпроцессорный вычислительный комплекс «Эльбрус-3М1», в 2007 году был принят государственной комиссией.


Так началась линейка процессоров «Эльбрус», которая дальше достаточно быстро набирала темпы.

Следующим процессором был уже процессор «Эльбрус–S», он прошел испытания в 2010 году. Он не пошел в серию, но это был первый процессор серии «Эльбрус», в котором «северный мост» был интегрирован на кристалл, и к нему, к этому процессору, был разработан наш собственный «южный мост», который назывался КПИ (контроллер периферийных интерфейсов). Этот «южный мост» разрабатывался одновременно и для процессора R1000, и для «Эльбрус–S».


Но, как я сказал, этот процессор не стал серийным, и его очень быстро заменил процессор «Эльбрус–2С+», где «С» означает «система на кристалле», а «+» означает, что в нем встроены дополнительные ядра, не эльбрусовские. «Двойка» в названии отвечает за число эльбрусовских ядер, а «+» — за ядра других архитектур. В этой гетерогенной системе было два эльбрусовских ядра на частоте 500 МГц и 4 ядра цифровой обработки сигналов (DSP) фирмы «ЭЛВИС». Что любопытно — на практике оказалось, что подавляющее большинство задач можно и удобно решать на ядрах с архитектурой «Эльбрус» без задействования вспомогательных ядер DSP.


Дальше прогресс шел очень быстро. В 2013 году была сдана работа по созданию четырехъядерного процессора «Эльбрус» — «Эльбрус-4С». И вот этот процессор уже получил широкое распространение. На его основе были созданы интересные системы. В частности, был развернут центр обработки данных, который до сих пор функционирует. И в этом ЦОДе на территории ФГБУ НИИ «Восход» сейчас 24 часа в сутки происходит обработка заявок на оформление загранпаспортов. Система называется «МИР».

Дальше пошли процессоры нового поколения: «Эльбрус-8С», «Эльбрус-1С+». Сейчас у нас готовится к серийному выпуску процессор «Эльбрус-8СВ» — это апгрейд процессора «Эльбрус-8С». Вовсю идет работа над тремя новыми процессорами по технологии 16 нанометров — это «Эльбрус-2С3», «Эльбрус-16С» и «Эльбрус-12С».


Но я бы на этом месте задал вопрос: как удалось довести проект до его сегодняшнего состояния?


Особенностью процессора «Эльбрус» является то, что его идея соответствовала нашим возможностям и нашим ограничениям. Когда я говорю «нашим», я имею в виду возможности и ограничения наших российских команд разработки.


Дело в том, что процессор «Эльбрус» построен по принципу широкого командного слова. То есть это, по сути, простая машина. Простая в том, что не нужно реализовывать сложную логику процессоров, построенных по принципу RISC или CISC, которые ради повышения производительности занимаются поиском параллельно исполняемых операций в потоке инструкций, их переупорядочиванием и т. п.


Это сложная логика, которая присутствует во всех процессорах: Intel, AMD, ARM, MIPS. Сделать ее достаточно мощной, способной загружать параллельно большой парк исполнительных устройств, — очень большая и сложная работа. Она требует больших ресурсов, в том числе большого транзисторного бюджета. В общем-то, если бы была сделана попытка идти по этому пути, то, скорей всего, не было бы никакого результата. Выдающегося результата, точно, не было бы.

Было принято другое решение. Оно заложено было еще в советское время. Главным идеологом его был Борис Арташесович Бабаян. Решение состояло в том, чтобы попытаться сделать в аппаратуре сравнительно простую систему с явным (программным) управлением запуском параллельных операций, которая будет обеспечивать исполнение значительно большего числа операций в такт, по сравнению с современными ему процессорами. А саму работу по планированию параллельных операций возложить на компилятор.


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


Процессор по возможностям получился достаточно мощным — до 23 скалярных операций в такт на первом процессоре «Эльбрус», и это — 2007 год! В то же время уровень сложности его аппаратуры оказался приемлемым, чтобы спроектировать его смог тот небольшой коллектив разработчиков, который у нас был.


Надо сказать, что по меркам мировой индустрии команда МЦСТ — очень компактная команда. Для сравнения, нас всего сейчас в МЦСТ порядка четырехсот человек, а в компании Intel одних только дизайнеров физического уровня более тысячи человек. При том, что это очень высококвалифицированные специалисты, очень высокооплачиваемые. Конечно, в наших условиях позволить себе такое невозможно. Но в результате принятого нами подхода появился работающий процессор «Эльбрус».

Но надо сказать, что компилятор оказался очень сложным. Он содержит уже более миллиона строк кода. Он постоянно развивается. Видно, что только за счет компилятора в год в среднем мы повышаем производительность системы на пять процентов. Это совсем даже немало.


В итоге сейчас имеем целое семейство процессоров «Эльбрус», свой собственный компилятор, свою собственную операционную систему — «Эльбрус Линукс», или ОС «Эльбрус». Мы вынуждены были разработать свою ОС, потому что никто, кроме нас, не смог бы перенести ядро Linux на архитектуру «Эльбрус», запустить, отладить и поддерживать в течение нескольких поколений.


В составе операционной системы у нас есть довольно много ПО. Это обычные офисные продукты. Это, например LibreOffice, это браузер Firefox, это масса разных пакетов прикладного программного обеспечения, в том числе СУБД Postgres, в том числе Java-машина. Все это было перенесено на платформу «Эльбрус» здесь, в России. По возможности мы использовали открытые исходные коды, но очень много где приходилось и приходится дорабатывать какие-то фрагменты, которые являются архитектурно зависимыми и где нет в исходных кодах аналога, даже близкого к тому, что требуется для процессора «Эльбрус» — например, в Java–машине.


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


За счет чего это происходит? Прежде всего за счет того, что архитектура «Эльбрус» достаточно гибкая. Это не просто широкое командное слово. Там много инструментов поддержки, которые, фактически, выполняют ту же роль, которую выполняют механизмы переупорядочивания операций и поиска зависимостей в системах типа RISC или CISC.

Кроме того, наш компилятор эффективно «вытягивает» параллелизм, планирует микрооперации и достаточно плотно заполняет широкую команду.


В результате на тестах типа SPEC CPU, например, у нас получается очень хорошее заполнение командного слова, в среднем порядка двух-трех операций в такт. Это больше чем у RISC-процессоров, если посмотреть на то, как заполняется конвейер современных RISC-процессоров на пакете программ SPEC CPU. Там будет порядка одной инструкции в такт.


Предельная возможность команды современных «Эльбрусов» — порядка 25 операций в такт. В реальной жизни, конечно, значительно меньше заполняется. В хороших плотных участках это пять-шесть операций в такт. Бывает, что десять. Больше очень редко можно увидеть. Но заполнение команды растет, если «помочь» компилятору подбором опций компиляции или небольшими изменениями в исходных кодах. Знание работы компилятора позволяет нам сильно оптимизировать исходные коды.


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

ИА Красная Весна

Показать полностью
Эльбрус Интервью IT Компилятор Процессор Длиннопост Текст
22
1
tbutton
tbutton
6 лет назад

Превращаем язык программирования в язык любви⁠⁠

Сейчас я покажу как создать свой язык программирования. Воу-воу, не спеши пролистывать пост, впереди тебя ждёт много картинок и пошаговая инструкция, так что даже если ты с компьютером на вы, то у тебя всё равно всё получится, я в тебя верю. Если возникнут вопросы - напиши в комментариях и я тебе отвечу.

Зачем это надо и почему такой странный заголовок? Тут всё просто, в связи с последними событиями, происходящими в Рунете, компьютерная грамотность населения начала стремительно расти. Если когда-то достаточно было уметь переустановить винду, чтобы девушка решила, что ты хакер и была в восторге, то сейчас этого, увы, недостаточно. Сейчас даже умение поднять VPN вполне обыденный навык. В связи с этим, перед нами стоит сложная, почти не выполнимая задача: сделать приятно любимому человеку, находясь в суровых реалиях действительности.

Соглашусь, что приятно, конечно, можно сделать по-разному...

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

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

Ну, всё хватит болтовни, пора создать свой язык программирования с компилятором и лексемами.

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Чтобы довести этот проект до нужного нам результата необходимо понять несколько идей. Первая - ОДдоадфыди, тебя же не смущает этот набор букв, думаю, не особо, а вот если бы я написал расширенная форма Бэкуса — Наура, то вероятность того, что будут произнесены заветные три буквы (WTF?) возрастает в разы. Это значит, что если дальше будет встречаться конструкция, которая потенциально может понизить твою самооценку

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

относится к ней нужно совершенно утилитарно - есть некая штука, которая что-то делает и у неё есть практическая реализация в виде набора строк - исходного кода. Достаточно понять связь между названием и назначением данной конструкции, а если захочется всегда можно копнуть в глубь с помощью поисковика.Вторая идея - писать сразу мега программу это безумие (безумству храбрых поём мы песню (с)), поэтому надо написать что-то простое, но рабочее, а потом уже его постепенно усовершенствовать. Так и поступим.Писать мы будем на Python. Что? Не знаешь его?! Ну, и не очень-то и нужно (см. первую идею). Код на нём по своему виду близок к естественному языку, что облегчает понимание, а я его подробно прокомментирую. Скачиваем Python отсюда https://www.python.org/downloads/ и устанавливаем, постоянно жамкая кнопку далее. Теперь нам где-то нужно писать код на нём, немного комфорта не помешает, поэтому используем вот эту среду разработки https://www.jetbrains.com/pycharm/ Бесплатной версии для наших задач хватит с запасом. Устанавливаем её по такому же принципу, что и Python.
Стартуем PyCharm, выбираем New Project - Pure Python, затем указываем папку, где будем хранить наш проект. Естественно, что желательно придумать для него красивое и романтичное название, тут уже дело вкуса, я в качестве названия выбрал имя девушки - Мира.

Проект создан, перед нами среда разработки во всей красе, но где писать код? Нажимаем на имя проекта правой кнопкой и выбираем пункт New - Python file

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Вводим имя файла, в нашем случае это lex, сейчас расскажу почему.

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

У нас будет свой язык, он состоит из конструкций вида:

print(5 + 5 - 4);

Нам надо описать логику работу языка. Чтобы это сделать, необходимо использовать расширенную Бэкус – Наурову форму (РБНФ; англ. Extended Backus–Naur Form). Это формальная система определения синтаксиса языка. Воплощается она при помощи метаязыка, определяющего всевозможные грамматические конструкции. Например, для сложения эта форма будет выглядеть так:

expression = number, "+", number, ";";number = digit+;digit = [0-9];

То есть, фактически, мы аккуратно описываем, что представляет из себя каждый элемент комбинации print(5 + 5 - 4);

Итак, что значит утверждение "мы сделали свой язык программирования", это значит что у нас есть что-то, что превращает текст, написанный на языке, правила которого мы задаём сами, в исполняемый файл: текст -> что-то -> исполняемый файл. Сейчас мы делаем "что-то", которое все крутые программисты ласково называют - компилятор. Компилятор состоит из:
1. Лексический анализатор (лексер, англ. lexer)2. Синтаксический анализатор (парсер, англ. parser)3. Генератор кодаЛексический анализатор распознаёт конструкции языка, синтаксический анализатор определяет логику работы распознанных конструкций, а генератор кода, на основе этой логики, создаёт исполняемый файл.Начнём с лексического анализатора, поэтому мы и назвали файл "lex".Для более эффективного лексического анализа возьмём себе в помощь библиотеку RPLY. Нажимаем File - Settings:

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Сейчас установим библиотеку. Выбираем Project Interpreter и нажимаем на "+" справа вверху

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Находим библиотеку, выбираем и жмём Install Package

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Библиотека установится успешно, о чём радостно нам сообщит

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Теперь мы можем писать наш код:

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Сначала мы импортируем установленную библиотеку, затем описываем класс, который содержит механизм разбора _add_tokens, способ своего вызова __init__ и метод, который задействует механизм разбора get_lexer.

Теперь надо всё протестировать, для этого создадим ещё один файл и назовём его "base". В этом файле мы будем писать код на нашем новом языке. Протестируем его на конструкции print(5 + 5 - 4);

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Теперь запустим его. Для этого нажмём правой кнопкой по файлу base и выберем пункт Run 'base'. Внизу окна высветится результат

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Это успех друзья! Мы написали уже треть компилятора!

Самое приятное, что это наш собственный язык и мы свободны выбирать названия функций как нам нравится. Например, можно заменить функцию print на I_love_you (в моём случае I_love_you_Mira) и всё будет успешно работать как и прежде.

lex.py

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

base.py

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Результат

Превращаем язык программирования в язык любви Программирование, Компилятор, Создание, Любовь, Инструкция, Длиннопост

Таким образом, у нас уже есть солидный задел на будущее и осталось всего ничего до создания своего собственного языка программирования. Если было интересно можно поддержать пост и оставить свой комментарий. Любите своих близких, дарите им подарки, посвящайте им стихи, музыку, картины, языки программирования, я знаю что ещё и будьте счастливы. До встречи в новом посте!

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