проект замены для существующего школьного задания - PullRequest
3 голосов
/ 18 января 2010

У меня есть школьное задание, которое состоит из программирования сканера / лексического анализатора для определенного простого языка. Сканер должен быть запрограммирован на C ++.

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

Я получил разрешение на новое задание по программированию. Он должен иметь одинаковую сложность и может быть на C ++, Objective C или Java.

В каком направлении мне следует идти, если у меня такой же уровень сложности, но он немного более современный и применим к современной CS / жизни.

Спасибо

Ответы [ 4 ]

9 голосов
/ 18 января 2010

Этот тип задания ... считается немного устаревшим и немного скучным.

Мне любопытно: кто считает это устаревшим? Твой профессор? Кто-нибудь известный в сообществе парсеров? Или ты?

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

Тем не менее, если вы уверены, что вам следует выполнить какое-то другое задание, почему бы не написать инструмент для создания сканера на C ++? Вы можете предоставить в качестве входных данных набор регулярных выражений, которые определяют токены грамматики, и он будет производить программу на C ++, которая распознает входные токены. Тогда вам больше никогда не понадобится писать сканер!

2 голосов
/ 18 января 2010

Почему вы думаете, что лексеры / парсеры больше не актуальны? Я нахожу, что я пишу что-то подобное по крайней мере раз в год.

1 голос
/ 19 января 2010

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

Я предполагаю, что он не выглядит современным из-за простого языка программирования, который вы сканируете. Лично я бы заменил простой язык программирования на что-то вроде Markdown или Textile . Оба они используются в современном программировании и научат вас схожим понятиям.

1 голос
/ 19 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...