Изменения
Теория и реализация языков программирования (посмотреть исходный код)
Версия от 23:36, 23 августа 2021
, 23:36, 23 августа 2021→ТРЯП на Физтехе
ТФЯ изучает две большие задачи:
ТФЯ изучает две большие задачи:
# как породить (описать) всевозможные допустимые цепочки данного формального языка (к примеру, формально правильные программы языка программирования, допустимые цепочки входных данных при тестировании сложной программы, у которой достаточно часто меняются как её коды, так и, возможно, структура обрабатываемых данных, состав правильно построенной СБИС или иной сложной технической системы вплоть до самолёта, правильную молекулу или вещество (ген в молекулярной биологии, лекарственное средство, имеющее заданный набор лечебных воздействий и не имеющее известных отрицательных последствий применения, в т.ч. в различном биохимическом окружении), непротиворечивую систему законодательных актов (на уровне компании, отрасли, государства) и т.д.)
# '''как породить (описать) всевозможные допустимые цепочки данного формального языка''' (к примеру, формально правильные программы языка программирования, допустимые цепочки входных данных при тестировании сложной программы, у которой достаточно часто меняются как её коды, так и, возможно, структура обрабатываемых данных, состав правильно построенной СБИС или иной сложной технической системы вплоть до самолёта, правильную молекулу или вещество (ген в молекулярной биологии, лекарственное средство, имеющее заданный набор лечебных воздействий и не имеющее известных отрицательных последствий применения, в т.ч. в различном биохимическом окружении), непротиворечивую систему законодательных актов (на уровне компании, отрасли, государства) и т.д.)
# как распознать цепочки из заданного языка (синтаксически правильные программы для ЭВМ, искомые цепочки для поисковиков программ-обозревателей интернета, программы поддержки секвенирования генома (каждый ген также может быть представлен как цепочка знаков или своего рода слова из допустимого языка Природы для данного вида) и т.д.
# '''как распознать цепочки из заданного языка''' (синтаксически правильные программы для ЭВМ, искомые цепочки для поисковиков программ-обозревателей интернета, программы поддержки секвенирования генома (каждый ген также может быть представлен как цепочка знаков или своего рода слова из допустимого языка Природы для данного вида) и т.д.
== ТРЯП на Физтехе ==
== ТРЯП на Физтехе ==
Исторически сложилось так, что на ФУПМе студентам предлагают изучать только приложения ТФЯ, связанные с программированием. Задача разработки разновидностей курса, учитывающего познавательные потребности студентов с других факультетов (прежде всего, ФРТК) не ставится, а их возможное участие в изучении курса с получением соответствующих зачётов и экзаменов затруднено (отчасти, возможно, и потому, что предлагавшийся в середине 2000-х в течение пары лет очный вариант курса по выбору для студентов иных факультетов не собирал минимально необходимого числа желающих).
Исторически сложилось так, что на ФУПМе студентам предлагают изучать только приложения ТФЯ, связанные с программированием. Задача разработки разновидностей курса, учитывающего познавательные потребности студентов с других факультетов (прежде всего, ФРТК) не ставится, а их возможное участие в изучении курса с получением соответствующих зачётов и экзаменов затруднено (отчасти, возможно, и потому, что предлагавшийся в середине 2000-х в течение пары лет очный вариант курса по выбору для студентов иных факультетов не собирал минимально необходимого числа желающих).
Из других факультетов МФТИ подобный курс ныне читается только на [[ФИВТ]] и другой командой преподавателей (требования преподавателей ФУПМа к студентам ФИВТ в деканате последнего показались слишком строги).
Из других факультетов МФТИ подобный курс некоторое время читался на [[ФИВТ]] и другой командой преподавателей (требования преподавателей ФУПМа к студентам ФИВТ в деканате последнего показались слишком строги).
В предисловии к своей известной книге ''А. Ахо'' и ''Дж. Ульман''<ref>''А. Ахо, Дж. Ульман'' «Теория синтаксического анализа, перевода и компиляции». Т. 1. пер. с англ. под ред. В.М. Курочкина. М.: Мир, 1978. С. 9</ref> писали «''Чтение курса по этой книге рекомендуется сопровождать лабораторными работами по программированию, в ходе которых должны быть спроектированы и реализованы какие-то части компилятора. В конце некоторых разделов книги приведены упражнения на программирование, которые можно использовать в этих лабораторных работах''».
В предисловии к своей известной книге ''А. Ахо'' и ''Дж. Ульман''<ref>''А. Ахо, Дж. Ульман'' «Теория синтаксического анализа, перевода и компиляции». Т. 1. пер. с англ. под ред. В.М. Курочкина. М.: Мир, 1978. С. 9</ref> писали «''Чтение курса по этой книге рекомендуется сопровождать лабораторными работами по программированию, в ходе которых должны быть спроектированы и реализованы какие-то части компилятора. В конце некоторых разделов книги приведены упражнения на программирование, которые можно использовать в этих лабораторных работах''».
Но количество выделенных для курса часов и общая высокая учебная нагрузка на студентов по сию пору не позволяет это осуществить. В тоже время для интересующихся студентов разработан и доступен разработанный В.А. Серебряковым пакет программ к курсу ТРЯП на Java (ссылка ниже).
Но количество выделенных для курса часов и общая высокая учебная нагрузка на студентов по сию пору не позволяет это осуществить. В тоже время для интересующихся студентов разработан и доступен разработанный [[Серебряков Владимир Алексеевич|В.А. Серебряковым]] пакет программ к курсу ТРЯП на Java (ссылка ниже).
=== Основатели и первые преподаватели ===
=== Основатели и первые преподаватели ===
Среди первых преподавателей курса, известных также как авторы первого учебного пособия по ТРЯП, вышедшего в МФТИ в 1973 г. (2-е изд. – 1978 г.), проф. [[Столяров Лев Николаевич|Л.Н. Столяров]], доц. Б.Г. Сушков и чл.-корр. РАН [[Флёров Юрий Арсениевич|Ю.А. Флёров]].
Среди первых преподавателей курса, известных также как авторы первого учебного пособия по ТРЯП, вышедшего в МФТИ в 1973 г. (2-е изд. – 1978 г.), проф. [[Столяров Лев Николаевич|Л.Н. Столяров]], доц. Б.Г. Сушков и чл.-корр. РАН [[Флёров Юрий Арсениевич|Ю.А. Флёров]].
Лекции по курсу до конца 1990-х годов читал сам В.М. Курочкин. В начале 2000-х его преемником стал ученик Владимира Михайловича проф. В.А. Серебряков.
Лекции по курсу до конца 1990-х годов читал сам В.М. Курочкин.
В начале 2000-х его преемником стал ученик Владимира Михайловича проф. [[Серебряков Владимир Алексеевич|В.А. Серебряков]].
== Об особенностях преподавания ==
== Об особенностях преподавания ==
=== Первые преподаватели курса ===
=== Первые преподаватели курса ===
* [https://ru.wikipedia.org/wiki/Курочкин,_Владимир_Михайлович_(учёный) В.М. Курочкин] (о нём и его научных трудах) в Википедии
* [https://ru.wikipedia.org/wiki/Курочкин,_Владимир_Михайлович_(учёный) В.М. Курочкин] (о нём и его научных трудах) в Википедии
* [https://ru.wikipedia.org/wiki/Сушков,_Борис_Григорьевич Б.Г. Сушков] (о нём и его научных трудах) в Википедии
* [https://ru.wikipedia.org/wiki/Сушков,_Борис_Григорьевич Б.Г. Сушков] (о нём) в Википедии
=== Книги и учебные пособия в сети ===
=== Книги и учебные пособия в сети ===
* ''Курочкин В. М., Столяров Л. Н., Сушков Б. Г., Флёров Ю. А.'' [http://trpl7.ru/t-books/guides.htm Теория и реализация языков программирования: Курс лекций] М., МФТИ, 1973. (2-е изд., 1978 г.) – электр. версия в сети с разреш. авторов.
* [http://www.mou.mipt.ru/fund.html Задание, программа и учеб. пос. по курсу ТРЯП] на портале каф. МОУ.
* ''Серебряков В.А., Галочкин М.П., Гончар Д.Р., Фуругян М.Г.'' [http://trpl7.ru/t-books/_TRYAPBOOK_pdf.pdf Теория и реализация языков программирования: учеб. пос.] М., МЗ-Пресс, 2003. (2-е изд., 2006 г.) – электр. версия в сети с разреш. авторов.
* ''Серебряков В.А., Галочкин М.П., Гончар Д.Р., Фуругян М.Г.'' [http://trpl7.ru/t-books/_TRYAPBOOK_pdf.pdf Теория и реализация языков программирования: учеб. пос.] М., МЗ-Пресс, 2003. (2-е изд., 2006 г.) – электр. версия в сети с разреш. авторов.
* [http://trpl7.ru/Conspectus/MyHill-Nerode_theorem.pdf Теорема Майхилла-Нероуда (необх. и дост. условие регулярности языка)] консп. лекции проф. В.А. Серебрякова (2018 г.).
* [http://trpl7.ru/AutoLang.htm Пакет программ к курсу ТРЯП] (В.А. Серебрякова) – пробный выпуск.
* [http://www.rubtsov.su/fl_course18/index Материалы по ТРЯП] преп. курса [[Рубцов Александр Александрович|А.А. Рубцова]]
* ''Мартыненко Б.К.'' [http://trpl7.ru/t-books/Martin/Martinenko_FLT_Cont.htm Языки и трансляции: учеб. пос.] СПб.ГУ, 2002 г. (ранее было разм. на странице автора на портале СПб.ГУ).
* ''Мартыненко Б.К.'' [http://trpl7.ru/t-books/Martin/Martinenko_FLT_Cont.htm Языки и трансляции: учеб. пос.] СПб.ГУ, 2002 г. (ранее было разм. на странице автора на портале СПб.ГУ).
* ''Шень А. Х.'' [https://www.mccme.ru/free-books/shen/shen-progbook.pdf Программирование: теоремы и задачи]. М.: МЦНМО, 2004. (разм. на портале МЦНМО с разр. автора) – здесь можно посмотреть алгоритм Кнута-Морриса-Пратта.
* ''Шень А. Х.'' [https://www.mccme.ru/free-books/shen/shen-progbook.pdf Программирование: теоремы и задачи]. М.: МЦНМО, 2004. (разм. на портале МЦНМО с разр. автора) – здесь можно посмотреть алгоритм Кнута-Морриса-Пратта.
* [http://trpl7.ru/t-books/RegExpr_Aho_Ullman.pdf Уравнения с регулярными коэффициентами] (консп. из Ахо-Ульмана (1978), 4 с.)
* [http://trpl7.ru/t-books/RegExpr_Aho_Ullman.pdf Уравнения с регулярными коэффициентами] (консп. из Ахо-Ульмана, 4 с.)
=== более ранние издания ===
* [http://trpl7.ru/Conspectus/MyHill-Nerode_theorem.pdf Теорема Майхилла-Нероуда (необх. и дост. условие регулярности языка)] консп. лекции проф. В.А. Серебрякова (2018 г.).
* ''Курочкин В. М., [[Столяров Лев Николаевич|Столяров Л. Н.]], Сушков Б. Г., [[Флёров Юрий Арсениевич|Флёров Ю. А.]]'' [http://trpl7.ru/t-books/guides.htm Теория и реализация языков программирования: Курс лекций] М., МФТИ, 1973. (2-е изд., 1978 г.) – электр. версия в сети с разреш. авторов.
=== В библиотеке МФТИ ===
=== В библиотеке МФТИ ===
* ''Хопкрофт Дж., Мотвани Р., Ульман Дж.'' Введение в теорию автоматов, языков и вычислений. М.: Вильямс, 2002. (16 шт.)
* ''Хопкрофт Дж., Мотвани Р., Ульман Дж.'' Введение в теорию автоматов, языков и вычислений. М.: Вильямс, 2002. (16 шт.)
* ''Ахо А., Лам М., Сети Р., Ульман Дж.'' Компиляторы. Принципы, технологии и инструментарий. М., СПб., Киев: Вильямс, 2011. 1184 c. (добавлен большой раздел о параллельных методах компиляции – для семестрового курса на 2-м году обучения мало актуально, а вес большой).
* ''Ахо А., Лам М., Сети Р., Ульман Дж.'' Компиляторы. Принципы, технологии и инструментарий. М., СПб., Киев: Вильямс, 2011. 1184 c. (добавлен большой раздел о параллельных методах компиляции – для семестрового курса на 2-м году обучения мало актуально, а вес большой).
=== более ранние издания ===
* ''А. Ахо, Дж. Ульман''. Теория синтаксического анализа, перевода и компиляции. Т. 1. Пер. с англ. ''В. Н. Агафонова'' под ред. ''В. М. Курочкина''. М.: Мир, 1978. 614 с. (имеются только в чит. зале)
* ''А. Ахо, Дж. Ульман''. Теория синтаксического анализа, перевода и компиляции. Т. 2. Пер. с англ. ''А. Н. Бирюкова'' и ''В. А. Серебрякова'' под ред. ''В. М. Курочкина''. М.: Мир, 1978. 487 с.
{{Предмет преподают}}
{{Предмет преподают}}
{{комментарии}}
{{комментарии}}