Здравствуйте !
> >ночью - до недавнего времени на удаленной работе,
> >а сейчас вот эту самую работу дополнительную подыскиваю
>
> Во классно, а где этого зверя искать можно, (если не секрет)...
Во сейчас то я и занят этим вопросом. Просто то где я раньше работал -
софтварная контора. Там мой приятель работал, работает и поныне.
Собственно, он то мне и предложил там работать. Но недавно столько делов
навалилось, что с очередным заданием сроки провалил безнадежно.
И проект пришлось передать другому человеку.
Раньше, еще студентом в преддипломный период работал с ребятами,
которые буржуям проги пишут. То есть ищется заказ в инете, пишется
прога и продается. За нее платят в правильных рублях, по нашим меркам
много... Но там был один парень - в английском здорово шарил, и программист
хороший. Собственно то он и искал заказы, сутками в инете зависал.
А моего английского хватает только на чтение MSDN (и то иногда
переводчик требуется). Так что вопрос о доп. работе остается открытым :-(
> >Если кому охота покритиковать - вот : http://SoftMaker.fatal.ru
> Чуть позже обязательно посмотрю...
>
> >на левой работе пришлось немного с обработкой изображений повозится.
> Этого пришлось много пропыхтеть на ГеоИнформационных Системах...
> Мат.обработка фотографий - дело интересное, но муторное... Например,
> методы вычленения рельефа местности по фото из космоса просто
> прикольно тестировать, такие коры бывают, что не дай Бог увидит
> препод...
У нас вот в универе геоинформационные системы один семестр раз в неделю
были, хотя кафедра (САПР) занимается этим достаточно плотно - недавно
индусы,
говорят, приезжали - смотрели достижения. Но на занятиях дело ограничилось
изучением принципов векторизации изображений. И программой EasyTrace под
дос.
> >самое простое решение, кажется - создать базу шаблонов в виде фреймов,
> >а потом выбирать и загонять в слоты что надо
> Ну а можно например было просмотреть нескольго гиг текстов прогой, в
> них найти всё формы встречающихся слов (разбивая на окончания,
> суффиксы, приставки и корни), потом пытаться понять место в
> предложении (сказуемое, подлежащиее и т.д.) после чего строить цепочки
> возможных смысловых связей...
Блин, я вот до таких тонкостей не доходил. Жалко...
> >А какую грамматику использовали ? LL1 или естесственную ?
> >Просто нам в качестве ТЗ обычно БНФ давали, а по ней уже грамматику
> >надо было строить.
>
> Да пофигу, хоть LL1, хоть LR1... Мы обычно брали любую грамматику, и
> приводили её в вид LL1 для компиляторов, и в вид LR1 для трансляторов
> - именно так обычно звучало задание...
>
> >А какой, если не секрет, синтаксический анализатор генерился ?
> >В смысле интересен метод разбора (метод рекурсивного спуска или как
> >конечный автомат) ? Я в курсовых делал только метод
> >рекурсивного спуска - возни было действительно много...
> Для LL1 хорош метод рекурсивного спуска, для LR1 - наоборот, метод
> (блин, забыл название, но там собираются сначала нижние элементы
> дерева разбора, а потом ищется подходящий вариант верхнего правила -
> образно говоря, его можно назвать методом рекурсивного подъёма :-)
>
> Для интерпритаторов идеальны БНФ с методом рекурсивного спуска -
> отлаживать элементарно просто становится... А конечный автомат можно и
> нужно использовать только на этапе ЛЕКСИЧЕСКОГО анализа, причём можно
> позволить себе считывать набор операторных лексем прямо с грамматики
> (например сложные операторы в Си ++ += !== и т.д.)
> >А не поделитесь идеей ?
> >Там, поди, переполнение как нибудь используется ?
>
> Входные регистры: EAX, EBX
> Выходные ECX: maximum
> Изменяемый регистр: EDX
>
> xor ECX,ECX // Обнуляем ECX
>
> cmp EAX,EBX // Собственно сравнение двух значений...
>
> seta CL // Установим в CL единицу, если сравнение показало
> результат - больше в беззнаковом сравнении (для
> знакового можно использовать setg
>
> xor EDX,EDX // не надо копировать ECX в EDX - лучше этот способ, так
> как бинарные операции самые быстрые, а в данном случае
> ещё и произойдёт псевдо-параллельная обработка в
> конвеере команд, а при копировании конвеер ждал бы
> получения результата в ECX. К тому же мы разделяем две
> операции с одним регистром (ECX) операцией сдругим
> регистром, давая время сформироваться результату в ECX
>
> neg ECX // Если в Cl стоит 1, то ECX заполнится единицами весь
>
> mov EDX,ECX
>
> and ECX,EAX // Если сравнение дало больше, то EAX скопируется в ECX,
> иначе в ECX будет ноль
> not EDX
>
> and EDX,EBX // Если сравнение НЕ ДАЛО больше, то EBX скопируется в
> EDX, иначе в EDX будет ноль
>
> or ECX,EDX // Собираем воедино дра результата (если посмотреть на
> алгоритм, то видно, что в один из этих двух регистров
> наверняка равен нулю...
>
> Данный алгоритм легко довести до возвращения и максимума и минимума -
> либо усложнив обработку и возвращая в EDX минимум, либо просто
> используя две пары регистров (ECX, ESI) (EDX, EDI) для получения
> результатов параллельно... В случае двух пар регистров рекомендую
> перемешивать команды с разными регистрами между собой - конвеер будет
> работать значительно бвстрее... В первом случае используется меньше
> регистров, во втором меньше команд.... Но что самое главное - ни
> одного условного перехода, ни одного обращения к памяти, а команда
> установки флагов set? просто копирует бит из регистра флагов в
> 8-битовый регистр... (то есть аналогична команде mov)... На самом деле
> эта команда конечно работает чуть дольше обычного копирования, но
> выигрыш врё равно есть и весьма чувствительный...
>
> Можно конечно извращаться и через сопроцессор, но там замороченее,
> хотя и возможно нечто подобное, но другим способом :-)
Здорово, блин...
А я вот асм в основном в виде вставок в C - код юзаю...
> Кстати, помнишь такую штуку, как обмен переменных значениями без
> использования дополнительного буфера... На регистрах то легко, но на
> языках высокого уровня бывает иной раз крайне неудобно вводить
> внутреннюю переменную в функцию - ведь это вызовет создание стекового
> кадра, а при выходе его разрушение, что занимает довольно большую
> часть времени работы функции, если сама функция крохотная...
>
> Способ извращения для асма понятен - обычный xchg, а для ВЫСШИХ :-)
> языков например таков
>
> a=a+b
> b=a-b
> a=a-b
>
> или { a+=b; b=a-b; a-=b }
Ага, ну это то классика :-)
Кстати, нам похоже, сюда : http://subscribe.ru/catalog/comp.soft.prog.prog
надо (программирование).
> Пиши, буду рад поговорить с приятным собеседником...
> А то у меня сейчас труба, а не работа - сижу и делаю на Excel-е пусть
> примитивную, но базу данных - это такие тормоза, и главное - такое
> ИЗВРАЩЕНИЕ, но раз начальство сказало люминий, значит люминий, а для
> несогласных будет чугуний...
> Я же не виноват, что более-менее хорошо знаю Эксель, и на нём
> действительно можно быстро создавать табличные отчёты с помощью
> групповых операций :-((((
А я вот опять же, в Excel-е только самые простые операции произвожу - типа
там
суммы по столбцам, график быстренько построить, симплекс-методом решение
подыскать...
Да, а с люминием и у меня на работе тяжко...
Vic.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:rest.interesting.flame-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=rest.interesting.flame&email=
http://subscribe.ru/ mailto:ask@subscribe.ru