Как работает язык программирования(Компилятор)? Основы программирования.
Telega и чатик - t.me/wndtn
boosty(менторинг) - boosty.to/wndtn
instagram - / winderton
github проекта(код с канала) - github.com/winderton
Telega и чатик - t.me/wndtn
boosty(менторинг) - boosty.to/wndtn
instagram - / winderton
github проекта(код с канала) - github.com/winderton
Пікірлер: 200
3к лайков, и будет продолжение серии + офк пишите коммент свой.
@normpoz0289
6 жыл бұрын
за год и 1,7 к лайков не набрало , а ты тут хочешь почти в два раза больше ... вообще это странно при 23 к подписчиков
@user-dl1cg1fs1l
6 жыл бұрын
lucky kulon, для программирования достаточно знать английский на уровне - просто "понимания английских слов и предложений", т.е. произношение не так важно, как и знаний многих аспектов грамматики при построении предложений. Ну а если ты уже будешь работать программистом - то тебе придётся коммуницировать и применять уже навыки хорошего произношения и вообще - хорошего владения языка в целом. Вывод: для самостоятельного программирования английский ты можешь выучить сам, на любых ресурсах. Ну а для ВЛАДЕНИЯ языком - придётся идти на курсы. Такова правда.
@SirusStarTV
5 жыл бұрын
Долго ещё
@johnyknows19
5 жыл бұрын
Приветствую! Ты говорил что в будущем создашь видос про разбор компилятора на примере какого то языка - если сделаешь на примере питона и/или пхп - получишь сразу +20 к карме )) Спасибо заранее)
@max325475685
5 жыл бұрын
И где видео?
Когда нет никакой спешки, то информация усваивается и воспринимается намного лучше. Спасибо за видео!
Очень полезная информация, люблю когда вы снимаете видео на общую тему ( то есть связанное со всеми языками ), спасибо за старания!!!
@wndtn
7 жыл бұрын
В этом весь смысл %)
@nurtaiamirbekov5388
7 жыл бұрын
Win а когда стрим будить?
Зачет: кратко, по делу и с поинтерами на самообучение при необходимости. Узнал много интересного.
Спасибо! Ждем следующих видео про компилятор!
Спасибо! Объясняешь понятно! Чувствую как мой мозг растёт)
Мне очень импонируют Ваши видео ) Огромное спасибо
Спасибо ) Хотелось бы еще видео про компиляторы.
Полезный видос, жму кнопку компиляции и особо не задумываюсь что к чему, а теперь все стало понятнее
Спасибо!Активно и исключительно по делу)
Спасибо за работу!
Опять английским произношением понтуешься:))))
@bossmafiicapybar
Жыл бұрын
Поэтому у меня была реклама курсов по английскому
@user-fw6dg9qw2p
4 ай бұрын
Не понтуется а показывает грамотность своих возможностей . Молодец 👍 автор развивается
Спасибо за полезное и интересное видео 🍀
Спасибо! Очень интересно узнать, конкретно от тебя, больше информации и практики по компиляторам в ближайшем будущем. Язык реализации не столь важен, но Python предпочтительней.
@cyberwaldemar
3 жыл бұрын
@Алек Сневар орнул
Спс, за труд. Успехов вам!
Добрый день,спасибо за видео и за труд!Может для начала взять какой-нибудь процедурный язык для компилятора?
Ждем продолжения :)
Очень информативное видео получилосб, спасибо!
Годно, жду продолжения !
Спасибо. Полезная инфа про парсинг.
Токен - это термин... Сила! Молодец
Брат, всё пучком, всё чётенько и по полочкам. Наполненность контента замечательная. Единственное имеется опечатка на 4:46, там 1 фаза не Синтаксический, а Лексический анализ.
Нечего не понял, но очень интересно
8:43 - За это тебя во время восстания машин убьют первым
Хорошо видео. Спасибо.
Добрый вечер. Какие основные языки сейчас используют компиляция?
очень интересно!
2:23 ну как-бы да, но как-бы оно работает чуть по другому как я помню Интерпретатор: вход (код) -> препроцессинг (превращение кода в промежуточный, т.е. байт код) -> выход после препроцессинга -> интерпретатор (выполняет байт код) -> выход Плюсы и минусы интерпретатора: + возможно выполнять код на лету (т.е. сохранил какой-то код в качестве текста в переменную и выполнил при помощи exec() в питухоне) - медленное выполнение (так как всё выполняется на уровне выше, чем нативно (т.е. разные уровни абстракции)) ? безопасная работа с памятью Компилятор: вход (код) -> компиляция (линковка, сборка библиотек в один файл) -> код.obj -> компиляция (уже в исполняемый файл) -> исполняемый файл.exe плюсы и минусы компилятора: + нативное (уже поддерживаемое системой) выполнение - СЛОЖНА - невозможность выполнять код на лету ? ручное управление памятью
Поверхностно как-то объяснили
Чувак, не подумай, что я выебуюсь, видео четкое, но ты вводишь людей немного в заблуждение на счет этапов. 1. Лексический анализ (он же разбор на токены) 2. Синтаксический анализ (он же парсинг) ... ну а дальше все правильно
Продолжай свое дело смело, а я тебе помогу лайком и комментом)
Спасибо!
Правильно ли я понимаю, что цели/предназначения продуктов, созданных компилятором и интерпретатором разнятся? Заранее благодарю за ответ.
@user-mz4bi9jj5q
2 жыл бұрын
а ответа то и нет.вежливый вы наш.
Повторение - мать учения)))
Вам бы книги писать)Спасибо!
Какая Музыка использовалась ?
Качественный контент, спасибо. Не планируется ли разбор устройства интерпретатора Python?
@ohnocoder
2 жыл бұрын
Python это вроде бы не интерпретатор, у него есть VM
Хорошее видео хоть и искусственно усложнено в некоторых местах
Коротко и глубоко. Огонь!
Какую музыку ты использовал в этом в этом видео? Кто ни будь знает?
Здравствуйте. Подскажите название музыки, которая фоном играет.
Спасибо Винд
относительно семантики.Хорошо написано у Ю.Н.Хараре.Предлагается вообще отказаться от души, чувств,эмоций в угоду потоку данных, информации.Будущее за квантовыми компами.Я-_за.📺‼
Подобное про интерпретаторы будет?
Черт, как же сильно это затягивает.
очень интересные видео
Также интересно стало... Как при реализации семантики компилятора можно использовать нейросети? Это вообще будет иметь смысл?
Спасибо
Windertooooon!!!
Awesome!
оптимизация что лучше - больше на 1 строку в коде или больше на 1 строку в консоли
@excore1322
6 жыл бұрын
Если ты про перенос строки, то разницы нету
спасибо
Молодец!
Что за трек на видео, чувак?
Просто по default'у лайк, даже не досмотрев видео
@MsKarlason
7 жыл бұрын
на 5:32 поставил)
Благодарю , очень полезная информация ! Но ничего не понятно ! я только в самом начале , буду рыть дальше !
Вот он идеальный контент!
Хорошо что людей больше, иначе мы не сложили все потенциалы и не поняли этот мир, без близкого по значению заряда потенциал не соединится с мышлением, это к примеру палочка которая не взлетит если не швырнуть.
спасибо, интересно. жаль только 1к лайков ждать долго придется :/
@NMelis
7 жыл бұрын
вряд ли, уже 250 лайкос)
Было бы интересно увидеть написание компилятора на пайтон
Расскажи пожалуйста больше о С ...
Топ
Лайк
Компилятор это программируемая программа для программирования. Понятно, да
Может ли кто нибудь обьяснить как именно работает компьютер и транслируется программа на уровне электрического импульса, электрона и т.д. Типа нажал на кнопку клавиатуры и оттуда пошло определенное напряжение и вышло на экране что то? То что на видео объяснено это все могут прочитать и снова не понять :(
@user-uf2iw6wr5q
2 жыл бұрын
Вики архитектура арм или 86 генератируется импульс и попадает в манхэттэн и едет по трассе в сток а там пробка, или все по по очереди или кто-то с мигалками после пробки попадает в ДТП и там полицейский выбирает в телефоне какому прокурору позвонить(регистр) злому или богатому и решает что с тобой делать на 8 или 2 могут и на 0 умножить, если вышел то можно в экран улыбнутся
Пока еще учусь,поэтому не спец в этой теме.Объясните ,в чем же физика этого процесса,нигде не могу найти инфу.Как комптилятор переводит язык в в электрические сигналы,как это происходит вообще
@user-ug6zr4oi1g
5 жыл бұрын
есть большая пропасть между железяками и ПО,почитай "архитектуру эвм" Э Таненбаум 6 издание.
А что это за молитва в самом начале ролика на иностранном языке?! Шутка, конечно, но если серьезно, то ваш ролик неоценим. Я с молодости пытался научиться хоть какому-то простенькому программированию, но судьба уводила мои потуги в сторону. Сам электрик, КиПовец, заимаюсь любительской радиоэлектроникой, но хотелось что-нибудь замутить посерьёзнее.... К сожалению одни только термины загоняют в тупик, не говоря о их функциях и методах правильного написания программ!!! Спасибо за грамотное разъяснение и в понятной форме по этой теме!!! ❤️❤️❤️❤️❤️
Что именно означает действие "линковка с операционной системой"?
@excore1322
6 жыл бұрын
Это означает, что программа связывает себя с ОС и тем самым берет инпут с нее и аутпут шлет тоже в нее.
Задал 1 вопрос,а получил еще больше вопросов (интаксис и т.д.)
Мой кот ставит дизлайк шайтана атанын басы текнолэджи срубили лес, а мне понравилось спасибо
Спсб
Что за трек?
Компилятор на С# ? Было бы неплохо.
@user-ts9fk8xw4l
7 жыл бұрын
¿¿¿
@generalpashon
2 жыл бұрын
На джява
Абалдеть я сначала подумал что кликнул на англоязычный ролик...
Где камера? :(
Никто еще не пробовал создать Компилятор с ИИ?
Внутриния ошибка компилятора как исправить это?
3:42 - не совсем точно. Пример: с точки зрения синтаксиса все может быть правильно, но при этом присутствовать семантические ошибки, несмотря на которые программа скомпилировалась.
@wndtn
6 жыл бұрын
"Если вы написали все правильно с точки зрения синтаксиса и семантики...." Что именно тебе в этой фразе не понятно?
@postmetamorph6247
6 жыл бұрын
Не обязательно все правильно написать с точки зрения семантики, чтобы получить исполняемый файл.
@wndtn
6 жыл бұрын
Окей. "...тот самый аутпут". Под этой фразой подразумевалось, "Вы получаете то, что желаете получить", а не просто, какой-то там аутпут. Я не делаю ошибок в видео, в 99% случаев. Данный случай - это не тот самый 1%.
го видео о компиляторе С++
Почему не существует полноценного «нодового» (визуального) языка программирования? Я знаю несколько нодовых языков программирования (grasshopper, vvvv, xod ide, UE blueprints,...) в целом они все +-похожи, но ни один из них не даёт возможности создать (скомпилировать) проект в целый конечный вид, в виде самостоятельного приложения. Почему нельзя создать нодовых язык программирования, который давал бы возможность создавать и кросс-платформенные приложения и программироваться контроллеры?. Для знания такого языка не важно знать английский, и не важен синтаксис. С такими языками, больше сосредоточиваешься на алгоритме, и патч по мне намного наглядней чем строки кода. Подобной интересной попыткой был проект Mooha на GitHub но почему то он заглох.
4:45 :)
Уу мимими сматфона мрям мимишно звучит )
Компиляторы обнаруживают изменённость файла по времени модификации. Если отличается - исходный файл изменён, и его нужно перекомпилировать. Лучше делать это по хэшу исходного файла. Если возвращаешь файл к предыдущему состоянию - он такой же, но снова компилируется. В то время как можно вычислить хэш, увидеть, что такой контент уже компилировался, и повторно этого не делать. К тому же, точно не будет ошибки - время модификации файла может быть перезаписано, а результат хэш-функции не перезапишешь никак. SHA2-256 вычисляется быстро. В современных процессорах, даже самых дешёвых, присутствуют специальные машинные инструкции для ускорения вычислений SHA2-256. Т.е. эту хэш-функцию можно использовать во всех удобных местах - вычислительная нагрузка не очень затратная. На старых компьютерах это более затратно, но на всех новых - вычисляется быстро. Не помню точно порядок цифры, но вычисляется быстро. Присутствие специальных инструкций в общих процессорах говорит о том, что эта хэш-функция предлагается для широкого использования. Обратите внимание, что к другим хэш-функциям, например, к SHA-1, используемой в Git, это не относится. В процессоры Intel были включены специальные машинные инструкции только для SHA2-256 и AES-256. Поэтому, если нужны быстрые вычисления, следует ориентироваться именно на эти алгоритмы - на клиентских компьютерах они будут быстры. В частности, Git следует перевести с SHA-1 на SHA2-256.
опа, я сперва подумал что это видос на английском
Не стоит пользоваться сложными выражениями. Например: *(Output_Buffer + Output_Length++) = 0x80 | Middle_Seven; Озвучивается, что постфиксный инкремент ускоряет вычисление. Что такая форма записи формирует более эффективный машинный код. Может быть, это так. Но главное преимущество языков программирования высокого уровня - это простота. А такая запись очень усложняет понимание. Навскидку, можете сказать что окажется в скобках? То, что до инкремента или после? Когда именно происходит инкремент? До того, как значение переменной попадает в выражение или после? Задумываетесь, не так ли? Интуитивного понимания нет. Приоритеты операций в C, действительно, сложны. Пишите выражения как можно проще. Доступную оптимизацию сделает за Вас компилятор. Ваша программа, в первую очередь, должна быть проста для чтения и понимания. Вместо того, чтобы лепить инкремент прямо в выражение, разместите его как следующий оператор: *(Sueuf_Output_Buffer + Output_Length) = 0x80 | Middle_Seven; Output_Length++; Когда Вы будете читать это, Вы точно будете знать что попадает в выражение и когда именно происходит инкремент. Потому что линейная логика исполнения программы абсолютно естественна. Скажу Вам, что компилятор для этого и предыдущего кода, скорее всего, сформирует совершенно одинаковый машинный код, потому что оптимизация здесь очень проста. В общих задачах, не требующих сверхэффективности, стремитесь к простоте кода, а не к его эффективности. Конечно, есть и задачи, где на первом месте стоит именно производительность. В таких задачах Вам, возможно, потребуется тщательно продуманный C код. Который, возможно, будет выглядеть не самым понятным образом, но зато будет эффективным. В некоторых случаях, Вам даже может понадобится выписать код на ассемблере. Так делают, в частности, в ядрах операционных систем. Там, где в счёт идёт каждая исполняемая инструкция, программа может быть написана даже на ассемблере. Помните, что чем сложнее Вы напишете свой код, тем труднее Вам будет понять его впоследствии. Лично у меня, память о коде хранится не дольше 3-х месяцев. Спустя 3 месяца я смотрю на свой собственный код, и совершенно не могу вспомнить что это и о чём. Мне приходится читать и вникать. И чем проще он написан - тем проще это делать.
Есть желание
чел чисто на середине видео сказал главную проблему почему мы не можем создать ии способного обучатся как человек, а потому что мы точно не знаем как это делает мозг "семантика". поправьте меня там где я ошибся (а я скорее всего ошибся где то)
3к лайков набралось!!!
@user-ij1rq9dp9t
5 жыл бұрын
Ты какой язык учишь?
А если создать компилятор на нейронной сетке?
@user-eu7ud9tp3f
5 жыл бұрын
При этом взять что нейроннов будет достаточно для всех процесов
@kazakhification
4 жыл бұрын
@@user-eu7ud9tp3f нейроны вещь не четкая, а пацаны должны быть четкими.
Всмысле!? Interpreter изобрели первее чем compiler?
Ну и где компилятор?)
Очень похоже на разговор о том,как космические корабли бороздят просторы больших и малых театров,а далее огоро дами,огородами и к Ко- товскому...Инпут,аутпут, интерфейс любому кол- хозному электромонте- ру более понятны как вход,выход и провода. Слегка попроще нужно быть.
@ohnocoder
2 жыл бұрын
Если для тебя интерфейс - это провода, то иди в колхоз, а не в IT.
Компилятор - это переводчик
#include using namespace std; int main() { /* Comment out printing of Hello world! cout
@User-vj8xg
4 жыл бұрын
Ты забыл нажать F5
блин, ну вот збс, если шаришь в программировании и английском. А так типа я так много чего не понял из-за того, что слишком много слов, значение которых надо идти искать, в итогу отвлекаешься и бля...
В C5 ключевое слово "inline" следует заменить на "inlay". "inline" - это слово-паразит, которое мешает программированию. [In-lying]? [В-ложь]? Вероятно, имеются в виду имена ключевых слов, которые мешают программированию. Звучание слова [inlay] больше соответствует смыслу этого ключевого слова: "ляжь-в". Код, который ложится прямо в место вызова функции. Вы можете ввести это ключевое слово в свой код C/C++ с помощью директивы #define в заголовочном файле: #define inlay inline и в дальнейшем использовать вместо "inline" - "inlay". Почему это важно? Потому что Вы это читаете. Правильно звучащие ключевые слова делают язык программирования более эргономичным, более удобным в использовании.
Давай делать компилятор на Python ))
Процедура - функция, не возвращающая значение, - в C5 должна записываться без возвращаемого типа. В C для этого служит ужасное, пугающее слово "void". Думаю, это слово также является палочкой в колесо. Из C5 его необходимо исключить. Процедура должна выглядеть так: Procedure(uint32 Parameter) { ... } Это даёт программисту интуитивное понимание того, что возвращаемого значения у процедуры нет. У функции возвращаемое значение присутствует: uint32 Function(uint8 Parameter) { ... } Не представляю как обеспечить это удобство в C/C++. Макросы делают замену, но здесь должно быть отсутствие печатаемых символов.
Неспособная учиться бездушная последовательность нулей и единиц, я плачу хд
7:35-8:45 ааааа