Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Курсач по системному программированию... |
Автор: Нурик Сакура 20.11.2007, 17:43 |
У меня в след. семестре курсач по системному программированию. Подскажите какие-то темы, которые под него подпадали бы, плз. Хотя бы пару штук. Мне тут уже один знакомый препод сказал, что можно сделать текстовый редактор с разбором синтаксиса, еще я подумал, что можно сделать небольшой скриптовый язык.. У кого еще какие есть идеи? Самое главное, чтобы все это дело потом можно было написать без особых осложнений на С/С++ или на JAVA. Других языков, увы, не знаю. П.С.: Извиняюсь, если не в тот раздел, просто не знал, куда еще его запостить, чтобы было тематично... |
Автор: bsa 20.11.2007, 17:52 |
вообще-то темы "написание редактора" и "написание скриптового языка" к системному программированию отношения не имеют никакого. Вот если бы ты драйвера писал или сервисы (типа файрвола), это да. |
Автор: Flashdown 20.11.2007, 21:15 |
мы на системном программировании проходили всякие семафоры, ключи, разд. память, очереди сообщений, сигналы, порождение процессов, каналы, сокеты и т.п.... |
Автор: bsa 20.11.2007, 21:18 | ||
Но не редакторы же с подсветкой синтаксиса!!! |
Автор: jonie 20.11.2007, 22:04 |
bsa ну редактор с подсветкой синтаксиса (ядро разбора синтаксическое в драйвере) 8) я так понимаю у них курс системное программирование == C\C++ ну вроде как не веб (html,xml, http etc.) значит системное) а вот исхо семафоры, процессы и т.п. -- это распределенная обработка информации курс. каналы сокеты - сетевое программирование... --------------- собственно ждем ответа автора что у них "есть" |
Автор: MAKCim 20.11.2007, 22:18 |
Нурик Сакура, во первых, под какую ОС хочешь писать? если Linux, могу посоветовать сделать отладчик реализуется легко посредством ptrace() и тема самая что ни на есть системная если Windows, попробуй реализовать драйвер поддержки reiserFS хорошее дело сделаешь ![]() ![]() Добавлено через 2 минуты и 56 секунд jonie, я считаю так: если при разработке напрямую используется API системы, приложение можно считать системным |
Автор: Нурик Сакура 20.11.2007, 22:28 |
У нас системное программирование - это Asm. Пока что. Но, препод сказал, что курсовую можно писать на любом языке, который знаем. Вот, а я как раз изучаю C/C++... Насчет "семафоров, ключи, сигналы" - это больше подошло бы к курсу "Программирование на языке ASM", но не к системному программированию. jonie примерно правильно сказал - разбор синтаксиса можно в дрова запихнуть, это и будет системным программингом. У нас вообще какие-то непонятки в универе с тем, что говорят и что на самом деле нужно. И никто не может ничего нормально обьяснить, поскольку каждый говорит что-то свое... Там, где я раньше учился, было все четко, потому я и обратился к вам за хелпом. Если то, что препод мне предложил писать не есть сист.программинг - лучше я выберу тему, которая полюбому сист.программинг, чтобы потом меньше было головной боли. Да, чуть не забыл. OS WinXP, к сожалению, с Linuxом мое знакомство закончилось установкой и краткой настройкой его на практических занятиях в колледже. |
Автор: Нурик Сакура 20.11.2007, 22:46 | ||
Вы меня абсолютно правильно поняли =) Один написал неточно, а я подхватил как попугай ^__^ Насчет семафоров и прочей гадости, то с Асмом они у меня ассоциируются потому, что на них лучше всего учиться писать программы на Асме.. Те же цикли, те же проверки.. На С/С++ это все легко и просто, а на Асме небольшая лаба =) |
Автор: MAKCim 20.11.2007, 22:55 | ||
не все так легко даже на С/С++...далеко не все (я не про циклы естсественно) ![]() это раз во-вторых, для обучения ассемблеру работа с семафорами и прочими вещами абсолютно не нужна она будет только мешать ходу обучения |
Автор: Нурик Сакура 21.11.2007, 00:14 | ||||
Ну, нам наш препод старый (вполне нормально знающий) давал в виде лаб чисто для практики сделать светофор. Естественно, на С/С++ такая лаба - фигня, но для нас написать ее в Асме было не такой простой задачей - трудно переходить с языка высокого уровня на язык низкого уровня. Но мы справились. Впрочем, это все оффтопик, не имеющий отношения к делу. Итак, уточню немного просьбу: посоветуйте, пожалуйста, несколько тем для курсового проекта по системному программированию, которые было бы не очень трудно реализовать на С/С++. При этом мои знания в С/С++ пока на уровне "пару дней назад взял в руки книгу". Времени у меня много - полгода точно есть. Основы программирования знаю, ООП тоже, просто 3 года изучал PHP (правда, кое-кто не считает это языком программирования).. |
Автор: bsa 21.11.2007, 00:18 | ||
![]() Вообще-то "семафор" - это не "двуглазый светофор". Это средство синхронизации многопоточных приложений. |
Автор: Нурик Сакура 21.11.2007, 00:21 | ||||
Эм.. тупняк.. Спасибо, что просветили.. Вот видите, я даже этого не знаю.. Пока что.. Так что мне еще учиццо и учиццо... |
Автор: SaDFromSpb 21.11.2007, 01:13 |
Нурик Сакура, тебе нужно знания в порядок привести. 1) Си на данный момент является основным языком для системного программирования. (А уж точно не asm). 2) Драйвер - это низкоуровневая программа для обеспечения работы операционной системы с конкретным физическим устройством (хотя, бывают всякие экзотические случаи, когда создаются драйверы для эмуляции виртуальных устройств). Поэтому драйвер для разбора синтаксиса - звучит абсурдно. Пусть меня поправят, если что... И вообще, тормоши препода, по поводу конкретной задачи. Возлагать выбор самой учебной задачи на обучаемого как-то дюже непедагогично, ИМХО... Просто не нужно оперировать понятиями, в которых не разбираешься. Не уверен, что понимаешь, что такое "системное программирование" - прежде поищи его описание. Не знаешь, что такое драйвер - то же самое. Википедия тебе в помощь =) По-больше своей головой думай, и не успеешь оглянуться, как будешь уже наученный =). |
Автор: orthrus 21.11.2007, 06:06 |
Было бы очень хорошо ![]() |
Автор: nerezus 21.11.2007, 07:06 |
Написать сервер для, к примеру, FTP. |
Автор: Dude03 21.11.2007, 11:21 |
На самом деле написание текстового редактора было бы сложной задачей(я имею в виду написание с нуля, без использования готового класса окон венды для редактирования текста ![]() |
Автор: MAKCim 21.11.2007, 14:05 | ||||
да, если использовать только API
не обязательно есть драйвера ФС, драйвера-фильтры, драйвера для поддержки возможностей CPU и т. д по сути драйвер ядра - это любой код, который требует наивысшего уровня привилегий для своей работы |
Автор: DjoNIK 21.11.2007, 15:24 |
Доброго времени суток! Есть такая книжечка "Системное Програмное Обеспечение", в авторстве Молчанов А. Ю. (он у нас и ведет СПО ![]() Суть этого труда - не "текстовый редактор", а основные понятия, необходимые для разработки интерпретатора или компилятора! Вот какие лабы нам давались в течении семестра(что бы народ понял, что речь не "редакторе с подсветкой"): 1) Заполнение таблицы лексем (через хэш-коды, бинарные деревья и т.д.) 2) Написание лексического анализатора 3) Написание семантического анализатора 4) Генерация кода (в ассемблеры либо в объектный код) 5) Анализ распределения памяти (сколько памяти требуетяс выделить под данные/переменные программы) с учетом и без учета выравнивания машинного слова ЗЫ: это раньше СПО включал в себя разработку драйверов, написание boot-секторов и тому подобное, но наше министерство образования решило разделить это на два премета: "Операционные системы" и, собственно "СПО" |
Автор: Mayk 21.11.2007, 16:44 |
Как вариант, можешь написать что-то типа http://freshmeat.net/projects/dmalloc/'а --- либу для отловли утечек памяти. Вещь полезная. Правда, не очень оригинальная[в vs, например, есть встроенный детектор ликов]. Но если завраппить не только захват/освобождение памяти, но и всякие CreateBitmap/DeleteObject, fopen/flocse и т.д., то будет не так уж плохо. |
Автор: Нурик Сакура 21.11.2007, 17:16 |
SaDFromSpb, спасибо за советы. Учту. Я просто вчера был очень уставший и плохо работал моском, потому мог натупить много лишнего. Да и как-то раньше мне не приходилось столь близко сталкиваться с разработкой каких-либо програм, поскольку занимался в основном веб-программированием. Но сейчас немного поменялись приоритеты... Потому буду благодарен за исправление моих ошибок ^__^ DjoNIK, а нету ли этой книжечки в электронном варианте? Хочу еще раз уточнить, чтобы быть полностью уверенным: написать интерпретатор простенького скриптового языка будет системным программированием или нет? Я просто случайно наткнулся на несколько статей вполне неплохих, кроме того, мне пообещали принести конспект страниц на 80 формата А4 по грамматикам... |
Автор: Mayk 21.11.2007, 17:21 | ||||
Спроси препода. Может ему прокатит?
Слайды! Слайды! ссылки, ссылки. |
Автор: Нурик Сакура 21.11.2007, 17:38 |
Mayk, по большей части там книжки, могу привести названия, так как я скачал, но не сохранил адресов. А вообще, вот есть одна статейка чисто обзор скриптовых языков, их преимущества и недостатки и небольшой список: http://www.script-coding.info/Browse.html Есть еще статейка в несколько частей о написании интерпретатора: http://www.gamedev.ru/articles/?id=70118 (часть первая) http://www.gamedev.ru/articles/?id=70120 (часть вторая) Вот есть там же две статьи: http://www.gamedev.ru/articles/?id=70112 - Введение в LUA и http://www.gamedev.ru/articles/?id=70104 - Реализация скрипт движка. Если погуглить еще и повычитывать, то можно найти намного больше. Список книг: Основы разработки трансляторов - А.И.Легалов Конструирование компиляторов - из журнала „Communication of the АСМ", 11, N 3, 1968, 181 Системное программирование. Основы построения трансляторов - Р.И.Компаниец, Е.В.Маньков, Н.Е.Филатов Формальные языки, грамматики и автоматы - В.С.Фомичев Обратная польская нотация (постфиксная) - http://algolist.by.ru/syntax/opn.html |
Автор: DjoNIK 24.11.2007, 02:45 |
Вот http://www.piter.com/book.phtml?978546900391 |