Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Цели, задачи и правила площадки » Задание для студентов


Задание для студентов

Сообщений 1 страница 16 из 16

1

Наткнулся на такую вот контрольную работу:
Задание на самостоятельную работу по дисциплине «Разработка программных приложений»
Тема задания “Разработка встроенных языков прикладных программных средств
Целью выполнения самостоятельной работы является разработка встроенного языка и программного кода, для обеспечения лексического разбора.
В процессе выполнения самостоятельной работы требуется:
Во-первых, самостоятельно выбрать предметную область прикладного программного средства;
Во-вторых, описать предметную область с использованием теории графов. Построить граф предметной области;
В-третьих, разработать формальную грамматику для программного приложения в выбранной предметной области;
В-четвертых, разработать программный код, включающий лексический разбор программы на встроенном языке, с использованием детерминированного конечного автомата. Программный код может быть реализован в любой системе программирования;
В-пятых, подготовить отладочные варианты программы на разработанном встроенном языке прикладного программного средства. Отладочные варианты должны подтверждать, как разбор корректной программы, так и обнаружение ошибок в программе на встроенном языке.
Оформление самостоятельной работы
Отчет должен включать следующие элементы:
1. Титульный лист.
2. Оглавление.
3.Описание предметной области с использованием теории графов (граф предметной области)
4. Описание грамматики встроенного языка
5. Таблица детерминированного конечного автомата.
6. Распечатка программного кода.
7.Распечатки экранов, подтверждающих выполнение.
8. Литература и INTERNET-ресурсы.

Пункты можно взять как технологический процесс для изготовления таких систем.

2

Для начала неплохо бы определиться с методикой разработки. Какие периоды проверки 1 неделя/ месяц/ сезон/ год.
И от сюда плясать.
У студентов как бы это уже определено неделя на выполнение и неделя на исправление.
Допустим неделя
1) Анализ задачи, сбор материала.
2) Написание плана проверки и написание контрактов.
3) Написание задачи.
4) Добавление тестов. Тестирование задачи, устранение недостатков.
5) Составление отчёта.

Требования к отчёту зависит от решаемой задачи.

3

Какие периоды проверки 1 неделя/ месяц/ сезон/ год.

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

4

https://ru.wikipedia.org/wiki/Процесс_разработки_программного_обеспечения
Вот смотри есть несколько методологий. Каждая из них основана на циклах.

Есть экстремальное программирование. Сроки разработки 1 неделя, ещё меньше чем у студентов.
Вместо ТЗ у программистов карапульки - маленькие бумажки с описанием функционала который следует добавить.
В процессе разработки постоянно происходят рефакторинг кода.

Такой процесс очень хорошо управляем. Так как программисты не могут себе проводить тратить время в пустую и строить воздушные замки. В место этого они решают очень простые задачи.

С другой стороны есть книга Мифическийц человека месяц в котором показано, что оптимальным является разработка за 1 год.
Так как на одно лишь согласование с заказчиком уйдёт месяц. Во время которого программисты будут просто простаивать.

Есть ещё скрум, который у него тоже короткие интервалы длиной в месяц.

Отредактировано Павиа (2017-09-19 13:19:50)

5

Это я все знаю. Я имел ввиду взять этот вариант как макет для штампования подобных вещей, отработать технологию и найти способ автоматизации данных процессов. Здесь сроки как бы вообще начинают терять смысл. Если все автоматизировать все будет происходить очень быстро - в идеале сразу же после постановки и формализации задачи. Тут задача уйти от ремесла и поставить на поток. Цель - отладка систем подобного уровня, выработка нового более простого и совершенного решения (путем постановки большого числа экспериментов), обкатка синтаксиса языков программирования систем подобного рода.

6

utkin
Вы очень расплывчато написали. Каких таких систем?
Чем вас не устраивает связка YACC++ и http://www.webgraphviz.com/ ?

Отредактировано Павиа (2017-09-19 13:51:09)

7

Вы очень расплывчато написали. Каких таких систем?

Типа яка да. И плюс, тех что заявлены в самом студенческом задании.

Чем вас не устраивает связка YACC++ и http://www.webgraphviz.com/ ?

Высокий порог вхождения например. Как это раньше было? Каждая домохозяйка должна иметь возможность написать свой парсер, лексер и транслятор!

8

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

utkin написал(а):

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

Отвергая - предлагайте!

9

Отвергая - предлагайте!

Ну вот смотрите аналогия. Есть вот сложный для восприятия Фортран и простой для восприятия Бейсик. Так вот Як это Фортран. На нем можно делать крутые вещи, но для этого нужно много знать. Гораздо больше чем требуется для той задачи, для которой собственно и нужен встраиваемый язык программирования.

10

utkin
Бэсик слишком сложный язык, гораздо проще PL. А проще PL пожалуй ничего быть не может.
Вот мы нашли самый простой язык другие языки не нужны. Вопрос

utkin написал(а):

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

И зачем нам что-то штамповать и автоматизировать когда уже всё есть готовое? Бери и пользуйся!

Не хотите PL.  Вот тебе пожалуйста цикл из 10 статей  после которых вы сможете сами создать себе целый компилятор и язык программирования уровня бесик.
https://habrahabr.ru/post/103402/

11

И зачем нам что-то штамповать и автоматизировать когда уже всё есть готовое? Бери и пользуйся!

Зачем было строить дома, когда были пещеры? Бери и пользуйся. Очевидно, за тем, за чем вообще постоянно появляются новые языки программирования. Чего-то не устраивает, не удобно, лишние элементы или наоборот чего-то не хватает, не та философия, не те возможности и т.д. Не тот синтаскис в конце концов - нет русских буков!

Не хотите PL.  Вот тебе пожалуйста цикл из 10 статей  после которых вы сможете сами создать себе целый компилятор и язык программирования уровня бесик.

Вы не поняли примера. И опять 10 статей много. Надо, стремиться уменьшить число информации нужной пользователю для создания подобных вещей. А для этого часть матана надо спрятать в реализацию некоторых блоков (типа парсера). Вон как в винде - ничего не видно, зато анимация, картиночки и т.д. Быстро и просто (для пользователя системы).

12

utkin

utkin написал(а):

Вы не поняли примера. И опять 10 статей много. Надо, стремиться уменьшить число информации нужной пользователю для создания подобных вещей. А для этого часть матана надо спрятать в реализацию некоторых блоков (типа парсера). Вон как в винде - ничего не видно, зато анимация, картиночки и т.д. Быстро и просто (для пользователя системы).

Так всё отличие как раз в матане и есть. Если его убрать что останется? Останется только SWIG с указанием целевого языка. 
А если не убирать то делаем всё по статьям проще уже некуда.

По поводу спрятать, не выйдет так как отличие в матане.
Лично моё  мнение если хотите быстро и просто - эта биржа кода, услуг и генераторов. Заказчик платит деньги получает готовый продукт по ТЗ.

Отредактировано Павиа (2017-09-20 11:08:22)

13

По поводу спрятать, не выйдет так как отличие в матане.

Ну вот Як универсальное средство. Но все равно сложен. Можно упростить ряд вещей. Также и остальные плюшки.

Заказчик платит деньги получает готовый продукт по ТЗ.

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

14

Павиа написал(а):

хотите быстро и просто - эта биржа кода, услуг и генераторов. Заказчик платит деньги получает готовый продукт по ТЗ.

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

15

Сделать сложную вещь простой - не просто.

Понятно, ну а кому сейчас легко :) ?

16

utkin
В том то и дело, что даже американские домохозяйки не стали учить бесик. В место этого появилась вакансия программист VBA. И более того оператор для ввода текста в БД. И программист БД и программист сайта для отображения всего этого хозяйства. И всё это разные люди.

utkin написал(а):

Раньше ведь компы тоже куча лаборантов обслуживала.

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


Вы здесь » Ремесло программиста » Цели, задачи и правила площадки » Задание для студентов