Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - albobin

Страницы: [1] 2 3 ... 14
1
Урочище Флуда / Re: Что - то скучно у вас...
« : Январь 31, 2015, 03:17:38 pm »
Имеете в виду, что в магазине продали "из старых запасов"?

Ребята, вроде, брали не по принципу "хоть что-нибудь с COM", а что-то из актуального ряда материнок. Брали в ритейлере, который "под Nix-ом".
А вариант с использованием железок типа из  http://www.digi.com/products/serialservers/  не рассматривали?
Мы в конторе с давних пор такими пользовались. 

2
Может интересно будет, вот ссылка на блог (метка H2O) http://blog.kazuhooku.com/search/label/H2O , где автор делится опытом создания быстрого веб-сервера и, в том числе, быстрого и к тому же ещё и stateless, http парсера.

3
Не придётся ли всё равно перейти к варианту парсера-автомата который будет обрабатывать одно событие (один символ) за один вызов, ведь символ "СЛЕДУЮЩИЙ_СИМВОЛ_ЕЩЁ_НЕ_ПОЛУЧЕН" может быть обнаружен в произвольном месте "классического " парсера ?

4
если продолжать про сопрограммы, то справедливее, конечно, вспомнить не Пайка, а Мелвина Конвея и его статью, где он помимо прочего привел пример практического опыта создания компилятора с кобола с применением сопрограмм.

5
Всплыло ещё в памяти презентация или доклад Р.Пайка по Go и сопрограммам , на примера как раз парсинга или чего-то подобного.  Там  парсер в точках, где  запрашивает новый символ, получает его через канал из другой сопрограммы.  Тут уже в отличии от SWITCH-техн. парсер "постоянно" активен.

6
Сразу вспомнилась так называемая SWITCH технология в автоматном программировании, которую продвигает Шалыто А.А. в Питерском УНИВЕРСИТЕТе ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ. Там события(приход символа к примеру) передаются автомату для обработки, а сам автомат события не запрашивает.

7
Зуев все же компилятор Оберона писать не пробовал :-)
https://sites.google.com/site/zouev54/tekusie-proekty/oberon-for-net
Но результат усилий неизвестен :(

8
Общий раздел / Re: Форыч зло
« : Ноябрь 22, 2013, 09:07:35 am »
Зло - это break в форыче, а continue (или IFы внутри цикла) позволяют выразить вполне определённый смысл:
для всех этаких сделать кой-чего.   



9
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 09:03:40 am »
Пару слов в "защиту" прав  ЦД  на жизнь :)
Мне кажется, что все сомнения в нужности ЦД, возникают из-за неучета нюансов просто циклов и циклов поиска.
Просто цикл - это когда нет бинарной интерпретации результата работы цикла, типа успешно/неуспешно и т.п.
В этом случае ЦД как обобщённый вариант вообще не должен вызывать никаких сомнений.
WHILE ~X  DO ... END     условие окончания  X=TRUE ( или просто X)
соответственно для ЦД
WHILE ~X1 DO ...
ELSIF ~X2  DO ...
...
ELSIF ~Xn DO ...
END
условие окончания X1&X2&....Xn

В цикле поиска, грубо говоря, X=TRUE может и не наступить, поэтому условие WHILE должно это учитывать.
WHILE ~E & ~X  DO ... END
условие окончания  E OR X.    Заданные условия E и X желательно должны быть таковы, что после окончания цикла выполнялось X=~E

Так вот в данном случае проблема для ЦД в том что  условие выхода X1&X2&...Xn должно быть наглядно представимо в форме E OR X


10
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 04:47:14 am »
Нет и мне успокоения :) 

Чуть подправлю свой последний вариант.
1. Без предположения, что слова в words отсортированы.
После последнего слова пробел обязателен.
PROCEDURE isReservedWorld(s: JsString.Type; words: JsString.Type): BOOLEAN;
VAR
    i, w, с: INTEGER;
BEGIN
    i := 0 ;
    w := 0 ;
    с := 0;
    WHILE (w < JsString.len(words))
        & ((с < JsString.len(s)) OR (i # JsString.len(s)) OR (JsString.at(words, w) # " ")) DO
        IF (i < JsString.len(s)) & (JsString.at(words, w) = JsString.at(s, i)) THEN
            INC(i);
            INC(c);
        ELSIF (JsString.at(words, w) # " ") THEN
            INC(i);
        ELSE
            i := 0;
            c := 0;
        END;
        INC(w);
    END;
    RETURN (w < JsString.len(words))
END isReservedWorld;

2. Если строка слов отсортирована, то
условие WHILE сокращается до
    WHILE (w < JsString.len(words))
        & (с < JsString.len(s)) DO
В этом случае будет выходить по первому совпадению проверяемого слова s с началом некоторого слова из words.
Возврат из функции тогда усиливается добавкой
    RETURN ((w < JsString.len(words)) & (JsString.at(words, w) = " "))

11
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 07:48:44 pm »
Да не ниненужен, а не осилили :)

12
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 06:20:23 pm »
описка:
в условии WHILE
не
... OR (JsString.at(words, w) # " ")) DOа
... OR (JsString.at(words, w0) # " ")) DO
PS.
Как же тяжко писать много букафф, вместо просто  $d(words(s)) как в МУМПСе  :)

13
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 05:39:51 pm »
Если не зацикливаться на ЦД :)
Рефакторинг исходного кода с такими ограничениями на строку слов:
слова отсортированы,
между словами один пробел,
после последнего слова тоже стоит пробел

PROCEDURE isReservedWorld(s: JsString.Type; words: JsString.Type): BOOLEAN;
VAR
    i, w, w0: INTEGER;

BEGIN
    i := 0 ;
    w := 0 ;
    w0:= 0 ;
    WHILE (w < JsString.len(words))
        & ((i < JsString.len(s)) OR (JsString.at(words, w) # " ")) DO
        IF (i < JsString.len(s)) & (JsString.at(words, w0) = JsString.at(s, i)) THEN
          INC(w); w0 := w;
          INC(i);
        ELSIF (JsString.at(words, w) # " ") THEN
          INC(w);
        ELSE
          INC(w); w0 := w;
          i := 0;
        END;
    END;
    RETURN (w < JsString.len(words))
END isReservedWorld;

PS.
проверять лень :)

14
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 12:35:11 pm »
PPS.
Конечно, если слова в строке отсортированы, то проблем в цикле нет.

15
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 07, 2013, 11:57:08 am »
PS.
К примеру ищем в строке слово "ON".
Наткнулись на  "ONE" и вышли, а далее в строке может всё же есть "ON"

Страницы: [1] 2 3 ... 14