LINUX.ORG.RU
ФорумTalks

ВМиК МГУ и написание интерпретатора HTML5+JavaScript

 


0

3

Когда я учился на ВМК, мы писали лексические анализаторы сокращенного диалекта SQL на основе конечных автоматов, и анализаторы каких-то старых языков типа Pascal.

А какие трансляторы пишут нынче современные айтишники в вузах России? И что необходимо обычно для написания, например, интерпретатора HTML5+JavaScript?
Трансляторы каких языков пишете?

★★★★★

Предлагаю в качестве темы парсер некоторых пользователей ЛОРа.

cipher ★★★★★
()

не было вообще такого в учебной программе :)

Harald ★★★★★
()

Писали транслятор подмножества языка Си в ассемблер. В подмножество входили арифметика и какая-нибудь конструкция ветвления, например.

obinos
()

Я написал Brainf*ck (pbrain) -> C , но это не было связано с учёбой.

Sadler ★★★
()

Шелл писали и интерпретатор си-подобного языка, или SQL на выбор. 4-5 лет назад на втром курсе ВМиК.

maggotroot
()

Так вот где сеют семя «еще одного принципиально нового языка/компилятора»!

buddhist ★★★★★
()

А какие трансляторы пишут нынче современные айтишники в вузах России?

Там и слов-то таких небось не знают. =)

У нас был небольшой курс по всему этому (один семестр)... самое большое, что делали - рисовали на jflap конечные автоматы, которые делали какие-то мелочи типа разбора небольших строк.

BattleCoder ★★★★★
()

Не знаю как в МГУ, мы курсе на 4м делали дружно свой RISC с блэкджеком. Даже на плисе зафуфырили, я к нему даже ассемблер написал тогда.

AiFiLTr0 ★★★★★
()

Теоретиков - гнать в три шеи!

Яйцеголовые «титиретики» не нужны.

Нужны те, кто программы создавать умеет, а не хренью страдать.

Программирование - это индустрия обслуживания.

«Я как-то получил открытую рецензию на книгу, посвященную мной предмету проектирования компиляторов, в которой рецензент (который преподавал в одном из ведущих университетов) заявил, что он „считает абсолютно неуместным включение исходного кода компилятора в книгу о проектировании компиляторов“. По его мнению, необходимо учить „фундаментальным принципам“ — лежащей в основе математике и теории языка, а детали реализации — „тривиальны“. Первое замечание имеет смысл, если у вас создалось впечатление, что книга написана ученым- специалистом по информатике, а не программистом. Рецензент интересовался лишь анализом компилятора, а не тем как его написать. Второе замечание просто показывает вам, насколько изолировала себя научная элита от реального труда программирования. »

(с) http://pv.bstu.ru/oop/c /cpprules.pdf

Bioreactor ★★★★★
()
Ответ на: комментарий от Eddy_Em

Если Вы недостаточно оценены на рынке, то это не повод завидовать успешным людям.

В том числе людям, успешным в IT.

Учителка англицкого и французского языка стала успешной в Канаде.

Пруф - http://pora-valit.livejournal.com/501417.html

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

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

не повод завидовать успешным людям.
В том числе людям, успешным в IT

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

ДС-диалекта русского языка

Це що за мова?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Bioreactor

1) Money talks, bullshit walks!

Девиз быдла, страдающего острой степенью потребительства легкого поведения?

If wishes were horses, beggars would ride

«Мечтать — не вредно, вредно не мечтать!»

Eddy_Em ☆☆☆☆☆
()

И что необходимо обычно для написания, например, интерпретатора HTML5+JavaScript?

HTML5 - это всё таки язык разметки, его не нужно «интерпретировать». А для написания с нуля программы, способной полноценно отображать странички на HTML5 (с css и javascript), тебе понадобится много человеколет.

Deleted
()
Ответ на: комментарий от Harald

Деньги сильно портят людей. Некоторое говно, случайно «выбившись в князи», начинает направо и налево сорить деньгами, а еще больше — словесным поносом. А вот как накроется лавочка, опять же в говно опустится!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

HTML5 - это всё таки язык разметки, его не нужно «интерпретировать»

Ну не компилировать же!

Вот латех — компилируется (из него получаются уже почти бинарные файлы).

А html интерпретируется, каждый раз, каждым праузером, и каждый раз по-разному.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Вы так говорите, как будто в том чтобы быть потребителем есть что-то плохое.

«Мечтать — не вредно, вредно не мечтать!»

О! Люблю поговорки!

1) «Мечтающий стать чиновником подобен мыши, ставший чиновником подобен тигру.» (с)

Ну или

2) «Каждая пипетка мечтает стать клизмой.» (с)

Мечтайте...

Bioreactor ★★★★★
()
Ответ на: комментарий от Eddy_Em

А html интерпретируется, каждый раз, каждым праузером, и каждый раз по-разному.

Это вопрос терминологии. ИМХО «интерпретировать» - не сильно подходящее слово для процесса отображения HTML-документа.

Deleted
()
Ответ на: комментарий от Harald

Если нет — значит человек просто пердит в лужу.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Согласен, но у нас много вузовских преподов под эту дудку сводят дисциплины, где нужно изучать теорию и писать код, проектировать и писать код к говорильне

pylin ★★★★★
()
Последнее исправление: pylin (всего исправлений: 1)
Ответ на: комментарий от Deleted

эмн, ты неправ. Парсишь в дерево->Пробегаешь по CSS и дереву -> Вычесляешь вьюпорт -> рисуешь. Работать это будет поначалу да.... медленно

visual ★★★
()
Ответ на: Теоретиков - гнать в три шеи! от Bioreactor

Нам говорили, что на ВМК готовят не программистов, а математиков. В принципе там всего 3 кафедры из (вроде) 16, имеющих отношение к программированию, как таковому, так что похоже на правду.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Нам говорили, что на ВМК готовят не программистов, а математиков.

Так и есть. Программирование - это кто как сможет, на самостоятельное изучение.
Семинары и лекции по ассемблеру мне, например, были почти не нужны.
По Паскалю - да, нужны, так как нам их читал академик с кафедры АЯ («Алгоритмических языков»).

P.S. К программированию имеют отношение:
АЯ - Иванников
ВМ - Шикин
АСВК - Сухомлин

pacify ★★★★★
() автор топика
Ответ на: комментарий от Bioreactor

Сам я пишу на Джаве.

А, ну все с вами теперь понятно, и про изливание говн тоже теперь понятно.

gensym ★★
()
Ответ на: комментарий от AiFiLTr0

Мы в 9м классе прогали на ассемблере для вот это штуки https://en.wikipedia.org/wiki/DLX . Так после программирования на ассемблере для RISC я вообще отказывался переваривать убогость асма для x86((( Так что для меня это был скорее минус.

maggotroot
()
Ответ на: комментарий от pacify

flex

Не надо ни в коем случае писать никакие реальные языки и стандарты — это просто хламление времени студента; студент дома читает книжки и статьи, если не читает, то превращается в солдата. Учить надо конкретно Флексу, Бизону, их архитектуре - то есть дельным вещам. Можно предложить в качестве вводного написание автомата Маркова (Марковский алгоритм).

sanaris
()
Ответ на: flex от sanaris

Если студенд уже смог написать парсер, первый генератор парсеров, какие-нибудь структуры данных на Си, можно выдать квесты следующего уровня, вроде 1)ускоренный парсинг, 2)дерево парсинга, 3)ассемблерный парсер итд.

А пока нет ничего, я заставляю на Си все основы провтыкать. Опять же, по-хорошему нужно взаимодействие с курсом архитектуры ЭВМ. И желательно, чтобы грамматический курс как-то отделялся от структур данных. Но это уже убер.

sanaris
()
Ответ на: комментарий от sanaris

После базовых упражнений с парсерами надо сразу переходить к флексу и бизону, на третий (?) левел. Просто не возможно функционал бизона-флекса реализовать за часы практики, это нереально. Все виды грамматик и вообще курс грамматики запихнуть тоже не удастся. Писать на Си долго и муторно, какое-то отличное от брейнфак не успеется написать. Вместо курса трансляции будет курс написания парсера, т.е. предыдущее.

С бизоном-флексом. Надо взять какую-нибудь оборванную виртуальную машину, сильно ограниченную. И транслировать туда с языка правил, запросов или ещё чего. В качестве машины M0 — 8086 или вроде того. То есть опять же язык L0 это mov,add - чем меньше, тем лучше. Можно взять M0 тот же брейнфак. А вот уже язык исходника L1 взять с 4-5 операторами. Конечно, сильно символическими - типа a:=b; b:=d+e. То есть выйти за пределы брейнфак. Но всё это крайне аккуратно описать в задании, чтобы не случилось у студенда отъезда крыши.

sanaris
()
Ответ на: комментарий от Deleted

В чём именно?

тебе понадобится много человеколет.

Я думаю с существующими технологиями и знаниями «человеколет» как-то многовато.

visual ★★★
()
Ответ на: комментарий от visual

Я думаю с существующими технологиями и знаниями «человеколет» как-то многовато.

Ты считаешь, что один человек может осилить написание полноценного движка отображения страниц (HTML5 + CSS_какойтамнынчемодноверсии + JavaScript) менее чем за один год?

Deleted
()
Ответ на: комментарий от visual

думаю да, но спорить не буду. Мои аргументы: кодогенерация.

Как-то слабо представляю себе кодогенерацию чего-то кроме парсеров...

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

Deleted
()
Ответ на: комментарий от visual

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

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Какая кодогенерация? Наслушался троллей, пишущих компиляторы на лиспе левой пяткой после обеда?

обычная, и лисп здесь не причом

visual ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.