Как работает язык программирования(Компилятор)? Основы программирования.

  Переглядів 173,483

Winderton

Winderton

7 років тому

Telega и чатик - t.me/wndtn
boosty(менторинг) - boosty.to/wndtn
instagram - / winderton
github проекта(код с канала) - github.com/winderton

КОМЕНТАРІ: 200
@wndtn
@wndtn 6 років тому
3к лайков, и будет продолжение серии + офк пишите коммент свой.
@normpoz0289
@normpoz0289 6 років тому
за год и 1,7 к лайков не набрало , а ты тут хочешь почти в два раза больше ... вообще это странно при 23 к подписчиков
@user-dl1cg1fs1l
@user-dl1cg1fs1l 6 років тому
lucky kulon, для программирования достаточно знать английский на уровне - просто "понимания английских слов и предложений", т.е. произношение не так важно, как и знаний многих аспектов грамматики при построении предложений. Ну а если ты уже будешь работать программистом - то тебе придётся коммуницировать и применять уже навыки хорошего произношения и вообще - хорошего владения языка в целом. Вывод: для самостоятельного программирования английский ты можешь выучить сам, на любых ресурсах. Ну а для ВЛАДЕНИЯ языком - придётся идти на курсы. Такова правда.
@SirusStarTV
@SirusStarTV 5 років тому
Долго ещё
@johnyknows19
@johnyknows19 5 років тому
Приветствую! Ты говорил что в будущем создашь видос про разбор компилятора на примере какого то языка - если сделаешь на примере питона и/или пхп - получишь сразу +20 к карме )) Спасибо заранее)
@max325475685
@max325475685 5 років тому
И где видео?
@user-bd8ul9yk2p
@user-bd8ul9yk2p 5 років тому
Когда нет никакой спешки, то информация усваивается и воспринимается намного лучше. Спасибо за видео!
@sambulatov9065
@sambulatov9065 7 років тому
Очень полезная информация, люблю когда вы снимаете видео на общую тему ( то есть связанное со всеми языками ), спасибо за старания!!!
@wndtn
@wndtn 7 років тому
В этом весь смысл %)
@nurtaiamirbekov5388
@nurtaiamirbekov5388 7 років тому
Win а когда стрим будить?
@DenisTrebushnikov
@DenisTrebushnikov 4 роки тому
Зачет: кратко, по делу и с поинтерами на самообучение при необходимости. Узнал много интересного.
@user-rp6qg4yg2c
@user-rp6qg4yg2c 6 років тому
Спасибо! Ждем следующих видео про компилятор!
@Shayitan_arba
@Shayitan_arba 5 років тому
Спасибо! Объясняешь понятно! Чувствую как мой мозг растёт)
@weench
@weench 5 років тому
Спасибо ) Хотелось бы еще видео про компиляторы.
@Pureshka_S_Kotletkoy
@Pureshka_S_Kotletkoy 6 років тому
Мне очень импонируют Ваши видео ) Огромное спасибо
@korumstar9989
@korumstar9989 5 років тому
Спасибо за работу!
@ig709
@ig709 6 років тому
Спасибо!Активно и исключительно по делу)
@AnNurkenova
@AnNurkenova Рік тому
Полезный видос, жму кнопку компиляции и особо не задумываюсь что к чему, а теперь все стало понятнее
@webnum7417
@webnum7417 6 років тому
Ждем продолжения :)
@verak2924
@verak2924 Рік тому
Спасибо за полезное и интересное видео 🍀
@mantus3427
@mantus3427 5 років тому
Годно, жду продолжения !
@R200a
@R200a Рік тому
Спс, за труд. Успехов вам!
@owlscowl931
@owlscowl931 7 років тому
Спасибо! Очень интересно узнать, конкретно от тебя, больше информации и практики по компиляторам в ближайшем будущем. Язык реализации не столь важен, но Python предпочтительней.
@cyberwaldemar
@cyberwaldemar 3 роки тому
@Алек Сневар орнул
@CraBiKun
@CraBiKun 6 років тому
Спасибо. Полезная инфа про парсинг.
@xmxustin
@xmxustin 6 місяців тому
Токен - это термин... Сила! Молодец
@user-my6vq5lr9w
@user-my6vq5lr9w 7 років тому
Спасибо!
@richardneztov
@richardneztov Рік тому
Хорошо видео. Спасибо.
@user-si1er9zx2k
@user-si1er9zx2k Рік тому
Очень информативное видео получилосб, спасибо!
@where_russian_lan
@where_russian_lan 7 років тому
Добрый день,спасибо за видео и за труд!Может для начала взять какой-нибудь процедурный язык для компилятора?
@RushHour-tb8cg
@RushHour-tb8cg 4 роки тому
очень интересно!
@Johnnywas87
@Johnnywas87 6 років тому
Коротко и глубоко. Огонь!
@user-mw3eq1kr7e
@user-mw3eq1kr7e 6 років тому
Продолжай свое дело смело, а я тебе помогу лайком и комментом)
@Kuch733
@Kuch733 3 роки тому
Поверхностно как-то объяснили
@prycrim
@prycrim Рік тому
Брат, всё пучком, всё чётенько и по полочкам. Наполненность контента замечательная. Единственное имеется опечатка на 4:46, там 1 фаза не Синтаксический, а Лексический анализ.
@user-kx8no8dr4f
@user-kx8no8dr4f 4 роки тому
Спасибо Винд
@user-jx8pe4yz6q
@user-jx8pe4yz6q 9 місяців тому
Хорошее видео хоть и искусственно усложнено в некоторых местах
@Alex-jl1en
@Alex-jl1en 5 років тому
Вам бы книги писать)Спасибо!
@TheNcoding
@TheNcoding 7 років тому
Вот он идеальный контент!
@user-uj4gr9ql4m
@user-uj4gr9ql4m 2 роки тому
2:23 ну как-бы да, но как-бы оно работает чуть по другому как я помню Интерпретатор: вход (код) -> препроцессинг (превращение кода в промежуточный, т.е. байт код) -> выход после препроцессинга -> интерпретатор (выполняет байт код) -> выход Плюсы и минусы интерпретатора: + возможно выполнять код на лету (т.е. сохранил какой-то код в качестве текста в переменную и выполнил при помощи exec() в питухоне) - медленное выполнение (так как всё выполняется на уровне выше, чем нативно (т.е. разные уровни абстракции)) ? безопасная работа с памятью Компилятор: вход (код) -> компиляция (линковка, сборка библиотек в один файл) -> код.obj -> компиляция (уже в исполняемый файл) -> исполняемый файл.exe плюсы и минусы компилятора: + нативное (уже поддерживаемое системой) выполнение - СЛОЖНА - невозможность выполнять код на лету ? ручное управление памятью
@liko8019
@liko8019 2 роки тому
очень интересные видео
@Vologdos
@Vologdos 7 років тому
Спасибо
@mrzxccxz
@mrzxccxz 4 роки тому
Нечего не понял, но очень интересно
@saitaro
@saitaro 6 років тому
Качественный контент, спасибо. Не планируется ли разбор устройства интерпретатора Python?
@ohnocoder
@ohnocoder 2 роки тому
Python это вроде бы не интерпретатор, у него есть VM
@user-xn2xb2yh3l
@user-xn2xb2yh3l 3 роки тому
Повторение - мать учения)))
@hill929
@hill929 5 років тому
Windertooooon!!!
@user-ym3yt1uq7s
@user-ym3yt1uq7s Рік тому
Молодец!
@AndriiTurchynRieltorDnipro
@AndriiTurchynRieltorDnipro 4 місяці тому
спасибо
@avalorthedoomed9594
@avalorthedoomed9594 2 роки тому
Черт, как же сильно это затягивает.
@aiko_here.0_0
@aiko_here.0_0 7 місяців тому
Благодарю , очень полезная информация ! Но ничего не понятно ! я только в самом начале , буду рыть дальше !
@yevgeniypak1220
@yevgeniypak1220 4 роки тому
Правильно ли я понимаю, что цели/предназначения продуктов, созданных компилятором и интерпретатором разнятся? Заранее благодарю за ответ.
@user-mz4bi9jj5q
@user-mz4bi9jj5q 2 роки тому
а ответа то и нет.вежливый вы наш.
@oldcastor-
@oldcastor- 7 років тому
спасибо, интересно. жаль только 1к лайков ждать долго придется :/
@NMelis
@NMelis 7 років тому
вряд ли, уже 250 лайкос)
@andreyl4664
@andreyl4664 3 роки тому
Добрый вечер. Какие основные языки сейчас используют компиляция?
@icaptain5924
@icaptain5924 6 років тому
Awesome!
@goingontheclay7913
@goingontheclay7913 7 років тому
Просто по default'у лайк, даже не досмотрев видео
@MsKarlason
@MsKarlason 7 років тому
на 5:32 поставил)
@coder1012
@coder1012 5 років тому
Какую музыку ты использовал в этом в этом видео? Кто ни будь знает?
@crinax5896
@crinax5896 4 роки тому
8:43 - За это тебя во время восстания машин убьют первым
@wolfgrad
@wolfgrad 4 роки тому
Хорошо что людей больше, иначе мы не сложили все потенциалы и не поняли этот мир, без близкого по значению заряда потенциал не соединится с мышлением, это к примеру палочка которая не взлетит если не швырнуть.
@exoticface
@exoticface Рік тому
Топ
@blezbasic1660
@blezbasic1660 Рік тому
относительно семантики.Хорошо написано у Ю.Н.Хараре.Предлагается вообще отказаться от души, чувств,эмоций в угоду потоку данных, информации.Будущее за квантовыми компами.Я-_за.📺‼
@ggromx89
@ggromx89 4 роки тому
Здравствуйте. Подскажите название музыки, которая фоном играет.
@BagiM3
@BagiM3 6 років тому
Чувак, не подумай, что я выебуюсь, видео четкое, но ты вводишь людей немного в заблуждение на счет этапов. 1. Лексический анализ (он же разбор на токены) 2. Синтаксический анализ (он же парсинг) ... ну а дальше все правильно
@CraBiKun
@CraBiKun 6 років тому
Также интересно стало... Как при реализации семантики компилятора можно использовать нейросети? Это вообще будет иметь смысл?
@user-ye7vc6ug1l
@user-ye7vc6ug1l 5 років тому
Спсб
@BastionKadabr
@BastionKadabr 7 років тому
оптимизация что лучше - больше на 1 строку в коде или больше на 1 строку в консоли
@excore1322
@excore1322 6 років тому
Если ты про перенос строки, то разницы нету
@user-py5re9qi7u
@user-py5re9qi7u 2 роки тому
А что это за молитва в самом начале ролика на иностранном языке?! Шутка, конечно, но если серьезно, то ваш ролик неоценим. Я с молодости пытался научиться хоть какому-то простенькому программированию, но судьба уводила мои потуги в сторону. Сам электрик, КиПовец, заимаюсь любительской радиоэлектроникой, но хотелось что-нибудь замутить посерьёзнее.... К сожалению одни только термины загоняют в тупик, не говоря о их функциях и методах правильного написания программ!!! Спасибо за грамотное разъяснение и в понятной форме по этой теме!!! ❤️❤️❤️❤️❤️
@maksimdidukh6114
@maksimdidukh6114 3 роки тому
Расскажи пожалуйста больше о С ...
@mikolaakbal
@mikolaakbal Рік тому
Компиляторы обнаруживают изменённость файла по времени модификации. Если отличается - исходный файл изменён, и его нужно перекомпилировать. Лучше делать это по хэшу исходного файла. Если возвращаешь файл к предыдущему состоянию - он такой же, но снова компилируется. В то время как можно вычислить хэш, увидеть, что такой контент уже компилировался, и повторно этого не делать. К тому же, точно не будет ошибки - время модификации файла может быть перезаписано, а результат хэш-функции не перезапишешь никак. SHA2-256 вычисляется быстро. В современных процессорах, даже самых дешёвых, присутствуют специальные машинные инструкции для ускорения вычислений SHA2-256. Т.е. эту хэш-функцию можно использовать во всех удобных местах - вычислительная нагрузка не очень затратная. На старых компьютерах это более затратно, но на всех новых - вычисляется быстро. Не помню точно порядок цифры, но вычисляется быстро. Присутствие специальных инструкций в общих процессорах говорит о том, что эта хэш-функция предлагается для широкого использования. Обратите внимание, что к другим хэш-функциям, например, к SHA-1, используемой в Git, это не относится. В процессоры Intel были включены специальные машинные инструкции только для SHA2-256 и AES-256. Поэтому, если нужны быстрые вычисления, следует ориентироваться именно на эти алгоритмы - на клиентских компьютерах они будут быстры. В частности, Git следует перевести с SHA-1 на SHA2-256.
@firstname32yearsago65
@firstname32yearsago65 5 років тому
Лайк
@CeyhunIsmayilzade
@CeyhunIsmayilzade 7 років тому
Было бы интересно увидеть написание компилятора на пайтон
@coder1012
@coder1012 5 років тому
Какая Музыка использовалась ?
@MrDemover123
@MrDemover123 7 років тому
Подобное про интерпретаторы будет?
@lk6618
@lk6618 3 роки тому
Компилятор это программируемая программа для программирования. Понятно, да
@user-rx5ji9kv6j
@user-rx5ji9kv6j 4 роки тому
Пока еще учусь,поэтому не спец в этой теме.Объясните ,в чем же физика этого процесса,нигде не могу найти инфу.Как комптилятор переводит язык в в электрические сигналы,как это происходит вообще
@user-ug6zr4oi1g
@user-ug6zr4oi1g 4 роки тому
есть большая пропасть между железяками и ПО,почитай "архитектуру эвм" Э Таненбаум 6 издание.
@noname1384
@noname1384 6 років тому
4:45 :)
@user-ts9fk8xw4l
@user-ts9fk8xw4l 7 років тому
Компилятор на С# ? Было бы неплохо.
@user-ts9fk8xw4l
@user-ts9fk8xw4l 7 років тому
¿¿¿
@generalpashon
@generalpashon Рік тому
На джява
@postmetamorph6247
@postmetamorph6247 6 років тому
3:42 - не совсем точно. Пример: с точки зрения синтаксиса все может быть правильно, но при этом присутствовать семантические ошибки, несмотря на которые программа скомпилировалась.
@wndtn
@wndtn 6 років тому
"Если вы написали все правильно с точки зрения синтаксиса и семантики...." Что именно тебе в этой фразе не понятно?
@postmetamorph6247
@postmetamorph6247 6 років тому
Не обязательно все правильно написать с точки зрения семантики, чтобы получить исполняемый файл.
@wndtn
@wndtn 6 років тому
Окей. "...тот самый аутпут". Под этой фразой подразумевалось, "Вы получаете то, что желаете получить", а не просто, какой-то там аутпут. Я не делаю ошибок в видео, в 99% случаев. Данный случай - это не тот самый 1%.
@carminex
@carminex 4 роки тому
Что за трек на видео, чувак?
@mikolaakbal
@mikolaakbal Рік тому
В C5 ключевое слово "inline" следует заменить на "inlay". "inline" - это слово-паразит, которое мешает программированию. [In-lying]? [В-ложь]? Вероятно, имеются в виду имена ключевых слов, которые мешают программированию. Звучание слова [inlay] больше соответствует смыслу этого ключевого слова: "ляжь-в". Код, который ложится прямо в место вызова функции. Вы можете ввести это ключевое слово в свой код C/C++ с помощью директивы #define в заголовочном файле: #define inlay inline и в дальнейшем использовать вместо "inline" - "inlay". Почему это важно? Потому что Вы это читаете. Правильно звучащие ключевые слова делают язык программирования более эргономичным, более удобным в использовании.
@alexandrlatukhin6345
@alexandrlatukhin6345 5 років тому
Задал 1 вопрос,а получил еще больше вопросов (интаксис и т.д.)
@mikolaakbal
@mikolaakbal Рік тому
Процедура - функция, не возвращающая значение, - в C5 должна записываться без возвращаемого типа. В C для этого служит ужасное, пугающее слово "void". Думаю, это слово также является палочкой в колесо. Из C5 его необходимо исключить. Процедура должна выглядеть так: Procedure(uint32 Parameter) { ... } Это даёт программисту интуитивное понимание того, что возвращаемого значения у процедуры нет. У функции возвращаемое значение присутствует: uint32 Function(uint8 Parameter) { ... } Не представляю как обеспечить это удобство в C/C++. Макросы делают замену, но здесь должно быть отсутствие печатаемых символов.
@user-kb1bc3rj1w
@user-kb1bc3rj1w 6 років тому
го видео о компиляторе С++
@user-nl1dt3kc4u
@user-nl1dt3kc4u 3 роки тому
Очень похоже на разговор о том,как космические корабли бороздят просторы больших и малых театров,а далее огоро дами,огородами и к Ко- товскому...Инпут,аутпут, интерфейс любому кол- хозному электромонте- ру более понятны как вход,выход и провода. Слегка попроще нужно быть.
@ohnocoder
@ohnocoder 2 роки тому
Если для тебя интерфейс - это провода, то иди в колхоз, а не в IT.
@askarb7912
@askarb7912 5 років тому
Может ли кто нибудь обьяснить как именно работает компьютер и транслируется программа на уровне электрического импульса, электрона и т.д. Типа нажал на кнопку клавиатуры и оттуда пошло определенное напряжение и вышло на экране что то? То что на видео объяснено это все могут прочитать и снова не понять :(
@user-uf2iw6wr5q
@user-uf2iw6wr5q 2 роки тому
Вики архитектура арм или 86 генератируется импульс и попадает в манхэттэн и едет по трассе в сток а там пробка, или все по по очереди или кто-то с мигалками после пробки попадает в ДТП и там полицейский выбирает в телефоне какому прокурору позвонить(регистр) злому или богатому и решает что с тобой делать на 8 или 2 могут и на 0 умножить, если вышел то можно в экран улыбнутся
@user-vg9nq5rj3w
@user-vg9nq5rj3w 5 років тому
3к лайков набралось!!!
@user-ij1rq9dp9t
@user-ij1rq9dp9t 5 років тому
Ты какой язык учишь?
@mikolaakbal
@mikolaakbal Рік тому
Не стоит пользоваться сложными выражениями. Например: *(Output_Buffer + Output_Length++) = 0x80 | Middle_Seven; Озвучивается, что постфиксный инкремент ускоряет вычисление. Что такая форма записи формирует более эффективный машинный код. Может быть, это так. Но главное преимущество языков программирования высокого уровня - это простота. А такая запись очень усложняет понимание. Навскидку, можете сказать что окажется в скобках? То, что до инкремента или после? Когда именно происходит инкремент? До того, как значение переменной попадает в выражение или после? Задумываетесь, не так ли? Интуитивного понимания нет. Приоритеты операций в C, действительно, сложны. Пишите выражения как можно проще. Доступную оптимизацию сделает за Вас компилятор. Ваша программа, в первую очередь, должна быть проста для чтения и понимания. Вместо того, чтобы лепить инкремент прямо в выражение, разместите его как следующий оператор: *(Sueuf_Output_Buffer + Output_Length) = 0x80 | Middle_Seven; Output_Length++; Когда Вы будете читать это, Вы точно будете знать что попадает в выражение и когда именно происходит инкремент. Потому что линейная логика исполнения программы абсолютно естественна. Скажу Вам, что компилятор для этого и предыдущего кода, скорее всего, сформирует совершенно одинаковый машинный код, потому что оптимизация здесь очень проста. В общих задачах, не требующих сверхэффективности, стремитесь к простоте кода, а не к его эффективности. Конечно, есть и задачи, где на первом месте стоит именно производительность. В таких задачах Вам, возможно, потребуется тщательно продуманный C код. Который, возможно, будет выглядеть не самым понятным образом, но зато будет эффективным. В некоторых случаях, Вам даже может понадобится выписать код на ассемблере. Так делают, в частности, в ядрах операционных систем. Там, где в счёт идёт каждая исполняемая инструкция, программа может быть написана даже на ассемблере. Помните, что чем сложнее Вы напишете свой код, тем труднее Вам будет понять его впоследствии. Лично у меня, память о коде хранится не дольше 3-х месяцев. Спустя 3 месяца я смотрю на свой собственный код, и совершенно не могу вспомнить что это и о чём. Мне приходится читать и вникать. И чем проще он написан - тем проще это делать.
@AnatoliyMir
@AnatoliyMir 4 роки тому
Опять английским произношением понтуешься:))))
@bossmafiicapybar
@bossmafiicapybar Рік тому
Поэтому у меня была реклама курсов по английскому
@user-fw6dg9qw2p
@user-fw6dg9qw2p 3 місяці тому
Не понтуется а показывает грамотность своих возможностей . Молодец 👍 автор развивается
@user-uf2iw6wr5q
@user-uf2iw6wr5q 2 роки тому
Мой кот ставит дизлайк шайтана атанын басы текнолэджи срубили лес, а мне понравилось спасибо
@STD282
@STD282 6 років тому
Что именно означает действие "линковка с операционной системой"?
@excore1322
@excore1322 6 років тому
Это означает, что программа связывает себя с ОС и тем самым берет инпут с нее и аутпут шлет тоже в нее.
@russel3983
@russel3983 Рік тому
Абалдеть я сначала подумал что кликнул на англоязычный ролик...
@dimdimych3099
@dimdimych3099 5 років тому
Уу мимими сматфона мрям мимишно звучит )
@mrslashx
@mrslashx Рік тому
Никто еще не пробовал создать Компилятор с ИИ?
@triton121
@triton121 4 роки тому
Почему не существует полноценного «нодового» (визуального) языка программирования? Я знаю несколько нодовых языков программирования (grasshopper, vvvv, xod ide, UE blueprints,...) в целом они все +-похожи, но ни один из них не даёт возможности создать (скомпилировать) проект в целый конечный вид, в виде самостоятельного приложения. Почему нельзя создать нодовых язык программирования, который давал бы возможность создавать и кросс-платформенные приложения и программироваться контроллеры?. Для знания такого языка не важно знать английский, и не важен синтаксис. С такими языками, больше сосредоточиваешься на алгоритме, и патч по мне намного наглядней чем строки кода. Подобной интересной попыткой был проект Mooha на GitHub но почему то он заглох.
@chief6685
@chief6685 2 роки тому
опа, я сперва подумал что это видос на английском
@urdrops9051
@urdrops9051 7 місяців тому
Всмысле!? Interpreter изобрели первее чем compiler?
@zggg9940
@zggg9940 5 років тому
#include using namespace std; int main() { /* Comment out printing of Hello world! cout
@User-vj8xg
@User-vj8xg 4 роки тому
Ты забыл нажать F5
@gagikmelkumyan7328
@gagikmelkumyan7328 3 роки тому
7:35-8:45 ааааа
@gryznysima6872
@gryznysima6872 3 роки тому
чел чисто на середине видео сказал главную проблему почему мы не можем создать ии способного обучатся как человек, а потому что мы точно не знаем как это делает мозг "семантика". поправьте меня там где я ошибся (а я скорее всего ошибся где то)
@Alex_Strigo
@Alex_Strigo Рік тому
Что за трек?
@user-ne7kj9vr4u
@user-ne7kj9vr4u 2 роки тому
Внутриния ошибка компилятора как исправить это?
@ministry_of_sound
@ministry_of_sound 3 роки тому
Как бы просто..но не совсем понятно.. Но хоть что то понятное
@user-eu7ud9tp3f
@user-eu7ud9tp3f 4 роки тому
А если создать компилятор на нейронной сетке?
@user-eu7ud9tp3f
@user-eu7ud9tp3f 4 роки тому
При этом взять что нейроннов будет достаточно для всех процесов
@kazakhification
@kazakhification 4 роки тому
@@user-eu7ud9tp3f нейроны вещь не четкая, а пацаны должны быть четкими.
@akaiddqd1461
@akaiddqd1461 6 років тому
Компилятор - это переводчик
@yanagaeify
@yanagaeify 7 років тому
Спасибо, кайфанул, если будешь писать компилятор, то молю, пиши на питоне)
@NMelis
@NMelis 7 років тому
Давай делать компилятор на Python ))
@romi4171
@romi4171 7 років тому
ставьте лайки надо 1000 набрать
@user-rf1qg5hz8x
@user-rf1qg5hz8x 3 роки тому
блин, ну вот збс, если шаришь в программировании и английском. А так типа я так много чего не понял из-за того, что слишком много слов, значение которых надо идти искать, в итогу отвлекаешься и бля...
@szxcvasdfqwer1
@szxcvasdfqwer1 7 років тому
Где камера? :(
Мама и дневник Зомби (часть 1)🧟 #shorts
00:47
Как бы я начал учить кодинг сейчас?
12:15
ТАК ПРОГРАММИРОВАЛИ НАШИ ДЕДЫ
21:18
Honey Montana
Переглядів 27 тис.
УЧИЛСЯ ПРОГРАММИРОВАТЬ ВСЕ ЛЕТО
10:31
Honey Montana
Переглядів 881 тис.
КАК РАБОТАЕТ ПРОЦЕССОР
10:24
GopherTech
Переглядів 2,8 млн