воскресенье, 16 сентября 2012 г.

Проблема при установке Fedora c USB

Имеется Live-CD Fedora, записанный на flash-носитель через UtraISO.
При попытке загрузиться с него появляется сообщение:

dracut Warning: Unable to process initqueue dracut 
Warning: /dev/disk/by-label/Fedora-17-x86_64-Live-Desktop does not exist 
dracut Warning: /dev/mapper/live-rw does not exist 
Dropping to debug shell dracut:/#

Проблема заключается в том, что UltraISO назвала загрузочную флешку Fedora-17-, а в загрузчике прописала полное название.

Чтобы исправить:
1. Переименовываем загрузочную флешку с Fedora-17- на LIVE.
2. Открываем /LIVE/isolinux/syslinux.cfg и заменяем все CDLABEL=Fedora-17-x86_64-Live-Desktop на CDLABEL=LIVE.

четверг, 26 января 2012 г.

Как запустить приложение на iPhone/iPad/iPod без сертификата разработчика

Так как диплом мне нужно написать под мой планшетник iPad, сразу возникло несколько проблем.

1.Писать под iPad можно только на маке с использованием XCode или на виртуалке с тем же маком. Пока что был выбран второй вариант и скачан он был отсюда.

среда, 25 января 2012 г.

Системы искусственного интеллекта. SWI-Prolog + Qt

В этой статье я бы хотел поговорить о ещё одном предмете, который преподаётся в 1 семестре 4 курса. Называется он системы искусственного интеллекта=)


Суть курса передать очень трудно, потому что особо ничего не было понятно с самого начала и до конца)


А рассказать хочется о семестровой работе, в которой было необходимо написать игру с искусственным интеллектом на прологе. К слову, писали мы её около 2-3 недель в конце декабря-начале января, уже после зачёта.

воскресенье, 22 января 2012 г.

ТЯП часть 4. Генерация кода

Немного отсебятины: мы написали почти рабочую генерацию за ~ 3 дня(причём после экзамена) и написана она весьма криво. Так что если будете заимствовать, делайте это с умом.


Что нужно сделать на последнем этапе: из того, что есть(атрибутированное дерево + таблицы, полученные на семантике) необходимо написать байт-код для каждого класса.
Мы просто скопировали наш проект с семантики на qt и постепенно начали добавлять функции для генерации кода.

ТЯП часть 3. Семантический анализатор

Для статических языков на этом этапе нужно сделать проверку всего, что возможно проверить и построить таблицы(констант, методов, полей).

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

Очень важное замечание от Дмитрия Мамонтова:"Количество проверок возрастает экспоненциально от числа фич!"

суббота, 21 января 2012 г.

ТЯП часть 2. Синтаксический анализатор.

Над этой лабой мы сидели очень долго. Сначала было трудно понять, что от нас требуется, а затем оказалось, что работы очень много.


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

пятница, 20 января 2012 г.

ТЯП часть 1. Лексический анализатор.

В первой части необходимо написать лексический анализатор.
Чтобы упростить жизнь студентам, используется программа Flex(...На входе получает текст в свободном формате и правила выделения лексем. На выходе даёт код анализатора, в виде функции на языке C...).

четверг, 19 января 2012 г.

Теория языков программирования

Итак, ранее названный предмет преподаётся в 1 семестре 4 курса и он оказался, пожалуй, самым сложным для меня с самого первого курса. Поэтому с него и начнём.

Основная идея курса - объяснить студентам, как устроен компилятор, хотя на деле весь курс представляет собой разбор методичек для лабораторных работ, в конце которых мы должны получить компилятор исходного текста программы в byte-code Java-машины.

Компилятор мы писали вместе с Константином Сухаревым для языка "Objectie-C".
Язык этот со статической типизацией, на что стоит обратить отдельное внимание.

Сам компилятор состоит из 4х частей:
1. Лексический анализатор
2. Синтаксический анализатор
3. Семантический анализатор
4. Генератор кода

Ссылка на репозиторий:
http://code.google.com/p/vstu-objective-c/
Основные файлы:
lexems.flex - лексика
grammar.y - правила по синтаксису
structs.h
declarations.h
definitions.cpp - дерево и функции по синтаксису
semanticStructs.h
semanticFuncs.h
semanticFuncs.cpp - дерево и функции по семантике
genFuncs.h
genFuncs.cpp - функции по генерации кода

Предисловие или part 0

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