LeoBlog.Ru: программирование
как взгляд на мир
Начало > Пишем форт-систему > Первый шаг. Интерпретация последовательности чего-то там в памяти
[fm]

2014-01-27

Добавлены: Киров-01.2014, Советский тракт, Пасегово, Чижи.

2014-01-15

Добавлены: Тайланд-12.2013, Бангкок, Муанг Боран, Аюттайя, Сад камней, Храм истины, Као-Кео.

2013-07-21

Добавлены: Тайланд-2013, Паттайя, Парк будды, обзорная площадка.

2013-07-17

Добавлены: Тайланд-2013, Паттайя, Нонг-Нуч.
Добавлены: Тайланд-2013, Бангкок, обзорная экскурсия.
Удалены: Тайланд-2013, Бангкок, обзорная экскурсия.
Добавлены: Тайланд-2013, Бангкок, обзорная экскурсия.

2013-06-16

Добавлены: Тайланд-2013, Бангкок, океанариум, Тайланд-2013, Вечерний Бангкок, Тайланд-2013, Бангкок, отель Prince Palace.
Добавлены: Тайланд-2013, Бангкок, прилёт.

2013-03-01

Добавлены: Киров, прогулка на природу.

2013-01-31

Удалены: Тайланд, 2011.Сплав, дегустация чая, возвращение (река Квай);
Добавлены: Тайланд, река Квай, 2011.Сплав, дегустация чая, возвращение.
Удалены: Тайланд, 2011.Мост, слоны, обезьяны и водопад (река Квай);
Добавлены: Тайланд, река Квай, 2011.Мост, слоны, обезьяны и водопад.
Удалены: Тайланд,река Квай, 2011.Буддийский храм;
Добавлены: Тайланд, река Квай, 2011.Буддийский храм.
Удалены: Тайланд, 2011.Буддийский храм (река Квай);
Добавлены: Тайланд,река Квай, 2011.Буддийский храм.
Удалены: Тайланд, 2011.Поселок на воде (река Квай);
Добавлены: Тайланд, река Квай, 2011.Поселок на воде ().
Удалены: Тайланд, Паттайя, 2011.Сад миллионлетних камней и крокодилы (Паттайя);
Добавлены: Тайланд, Паттайя, 2011.Сад миллионлетних камней и крокодилы.
Удалены: Тайланд, Паттайя, 2011. Храм будды (Паттайя);
Добавлены: Тайланд, Паттайя, 2011. Храм будды.
Удалены: Тайланд, Паттайя, 2011.
Удалены: Мини-сиам, день (Вечер);
Добавлены: Тайланд, Паттайя, 2011.Мини-сиам, вечер.
Удалены: Мини-сиам, день (Паттайя);
Добавлены: Тайланд, Паттайя, 2011.Мини-сиам, день.
Удалены: Буддийский монастырь (Паттайя);
Добавлены: Тайланд, Паттайя, 2011.Буддийский монастырь.
Удалены: Сплав, дегустация чая, возвращение (река Квай);
Добавлены: Тайланд, 2011.Сплав, дегустация чая, возвращение (река Квай).
Удалены: Мост, слоны, обезьяны и водопад (река Квай);
Добавлены: Тайланд, 2011.Мост, слоны, обезьяны и водопад (река Квай).
Удалены: Буддийский храм (река Квай);
Добавлены: Тайланд, 2011.Буддийский храм (река Квай).
Удалены: Поселок на воде (река Квай);
Добавлены: Тайланд, 2011.Поселок на воде (река Квай).
Удалены: Сад Нонг-Нуч (Паттайя);
Добавлены: Тайланд, Паттайя, 2011.Сад Нонг-Нуч.
Удалены: Сад миллионлетних камней и крокодилы (Паттайя);
Добавлены: Тайланд, Паттайя, 2011.Сад миллионлетних камней и крокодилы (Паттайя).
Удалены: Храм будды (Паттайя);
Добавлены: Тайланд, Паттайя, 2011. Храм будды (Паттайя).
Удалены: Приезд и первый день;
Добавлены: Тайланд, Паттайя, 2011. Приезд и первый день.

2012-11-27

Добавлены: Шестьдесят.

2012-11-19

Добавлены: Пишем планировщик времени реализации (2).

2012-09-29

Добавлены: Плагин для CMSimple: lktags, версия 1.1.

2012-09-27

Добавлены: Плагин для CMSimple: lktags, версия 1.0.

2012-09-25

Добавлены: Бета-версия плагина для CMSimple: lktags.

2012-09-10

Добавлены: Пишем планировщик времени реализации (1).

2012-07-24

Добавлены: Девушка и котэ.

2012-04-16

Добавлены: Портрет /3/.

2012-04-07

Добавлены: Портрет /2/.

2012-02-25

Добавлены: Учусь рисовать шарж /1/.

2012-02-23

Добавлены: Задачник.

2012-02-08

Добавлены: Мини-сиам, день (Вечер).

2012-01-26

Добавлены: Мини-сиам, день (Паттайя).
Добавлены: Буддийский монастырь (Паттайя).

2012-01-24

Добавлены: Приделал к IT.KIROV.RU RSS-ленту.

2012-01-14

Добавлены: Сплав, дегустация чая, возвращение (река Квай).

2012-01-10

Добавлены: Мост, слоны, обезьяны и водопад (река Квай).

2012-01-09

Добавлены: Буддийский храм (река Квай).

2012-01-07

Добавлены: Поселок на воде (река Квай).

2012-01-06

Добавлены: Сад Нонг-Нуч (Паттайя).

2012-01-05
Добавил возможность комментировать фотки из яндекс.фоток в галереях.

2012-01-04

Добавлены: Сад миллионлетних камней и крокодилы (Паттайя).
Добавлены: Храм будды (Паттайя).

2012-01-02

Добавлены: Приезд и первый день.
Добавлены: Тайланд, Паттайя, 2011.

2011-12-07

Добавлены: Портрет /1/.

2011-12-06

Добавлены: Внимательная.

2011-12-02

Добавлены: Студийная.

2011-11-29

Добавлены: Венок из одуванчиков.

2011-11-25

Добавлены: Задумчивая.

2011-11-24

Добавлены: Еще одна девушка.
Добавлены: Девушка на улице.

2011-11-20

Добавлены: В строй!.

2011-11-18

Добавлены: Вернемся к первому примеру.
Добавлены: Новый планшет.

2011-11-15

Добавлены: Немного эротики [R].

2011-11-14

Добавлены: Роман.
Добавлены: Стас.

2011-11-13

Добавлены: Илья.
Добавлены: Ольга.

2011-11-12

Добавлены: Юля.
Добавлены: Юра.

2011-11-11

Добавлены: Another old photo restoring.

2011-11-10

Добавлены: Кросавчег.
Добавлены: Алёнка.
Добавлены: Еще пример "карандашной" обработки.

2011-11-08

Добавлены: Make a picture from photo (pencil-like stylization) part 2.

2011-11-07

Добавлены: Просто о ретуши фотографий в GIMP (часть 11).
Добавлены: А вы знаете что развернуть крабовые палочки просто?.

2011-11-02

Добавлены: Make a picture from photo (pencil-like stylization).

2011-10-30

Добавлены: Программа Диван-ТВ.

2011-10-28

Добавлены: Просто о ретуши фотографий в GIMP (часть 10).
Добавлены: Пара новых скриптов для стилизации под рисунок.

2011-10-14

Добавлены: Переводчик гугль (Google Translator) и Путин на Калине.

2011-10-12

Добавлены: Просто о ретуши фотографий в GIMP (часть 9).

2011-10-10

Добавлены: Простенький скрипт для логов Апача.

2011-09-30

Добавлены: Печально, конец?.

2011-09-19

Добавлены: Убунта и вирусы.

2011-09-12

Добавлены: Поставил Ubuntu.

2011-08-19

Добавлены: Как я провел лето.

2011-07-14

Добавлены: Смешение двух техник. Эксперимент..

2011-07-06

Добавлены: Доделки на сайте.
Добавлены: Задумчивый взгляд.

2011-07-05

Добавлены: Девушка и роза.

2011-07-02

Добавлены: Фильм "Девичник в Вегасе". Впечатления..

2011-07-01

Добавлены: Один просвет, три звезды.

2011-06-27

Добавлены: Прикрутил к сайту RSS-ленту.

2011-06-23

Добавлены: Брат. Турция, 2011.

2011-06-20

Добавлены: Прогулка в Митино. Июнь, 2011.

2011-06-08

Добавлены: Прага-2011. Часть 5.

2011-06-06

Добавлены: Прикрутил к сайту Яндекс.Фотки.

2011-06-05

Добавлены: А вы знаете как открыть мельницу для специй KOTANYI?.

2011-05-13

Добавлены: Хачапури в отпуске.

2011-05-10

Добавлены: Девушка и хризантемы.

2011-04-23

Добавлены: Большая киска.

2011-04-22
Добавил к сайту возможность открывать многие картинки по клику отдельно в новом окне.


Добавлены: Пингвин.

2011-04-21

Добавлены: Юноша и стакан.
Добавлены: FileVersion из PHP под UNIX.

2011-04-20

Добавлены: Обезъянка.

2011-04-19

Добавлены: Наркошка.
Добавлены: Наркотег.

2011-04-18

Добавлены: Новый дизаен.
Добавлены: Лицо из кусочков.
Добавлены: Проба меня и планшета. По фотографии..
Удалены: Проба меня и планшета. По фотографии..
Добавлены: Планшетокошмарики. Перекрасил весь дизаен. Переделал картинку в шапке.

2011-04-15

Добавлены: Проба меня и планшета. По фотографии..

2011-04-08

Добавлены: Таркан по-русски.

2011-04-03

Добавлены: Новый стол.
Добавлены: Стихоробот.

2011-04-01

Добавлены: How to restore old photo with "colors and grain" script.

2011-03-25

Добавлены: Чистим кожу на фотографии при помощи "цвет-зерно".

2011-03-24

Добавлены: Скрипт для GIMP автоматизирующий прием "цвет-зерно".

2011-03-22

Добавлены: Прага-2011. Часть 4.

2011-03-21

Добавлены: Прага-2011. Часть 3.

2011-03-19

Добавлены: Прага-2011. Часть 2.

2011-03-18
немного поправил шрифты, немного поправил код автореферирования.


Добавлены: Прага-2011. Часть 1.

2011-03-05

Добавлены: Про ДР и вообще.

2011-01-20

Добавлены: Apriori, шаг первый.

2011-01-19

Добавлены: Чукча не читатель, чукча писатель (приступ первый).

2011-01-18

Добавлены: Чукча не читатель, чукча писатель.

2011-01-14

Добавлены: LL(1) парсер.

2011-01-07

Добавлены: И снова о Script-Fu в GIMP.

2010-12-20

Добавлены: йОлкО.

2010-12-06

Добавлены: Такие дела.

2010-11-29

Добавлены: А вы знаете как открыть замерзший замок двери машины?.

2010-11-19

Добавлены: Шаг третий. Осмысление. Конкретика.

2010-11-18

Добавлены: Потерял свой аккаунт в аське.
Добавлены: Второй шаг. Осмысление.

2010-11-12

Добавлены: Просто о ретуши фотографий в GIMP (часть 8).

2010-11-08

Добавлены: Брестская крепость - впечатления.

2010-11-04

Добавлены: Скринсейвер для снятия утомления с глаз.
Добавлены: Брестская крепость.

2010-10-31

Добавлены: Турция-2010. Часть 3.

2010-10-29

Добавлены: Первый шаг. Интерпретация последовательности чего-то там в памяти.

2010-10-27

Добавлены: Пишем форт-систему.

2010-10-24

Добавлены: Турция-2010. Часть 2.

2010-10-22
добавил вывод новостей на морду сайта


Добавлены: Турция-2010. Часть 1.
Добавлены: Желто-голубой автобус.

2010-10-19

Добавлены: "Химкинский лес...".

2010-09-02

Добавлены: Жизненное наблюдение.

2010-07-28

Добавлены: Просто о ретуши фотографий в GIMP (часть 7).
Добавлены: Просто о ретуши фотографий в GIMP (часть 6).

2010-07-26

Добавлены: Просто о ретуши фотографий в GIMP (часть 5).

2010-07-17

Добавлены: Просто о ретуши фотографий в GIMP (вариация на тему части 3).

2010-07-07

Добавлены: Турция-2009.
Добавлены: Йо!Да!.

2010-07-02

Добавлены: Сегодня - большой день.

2010-06-27

Добавлены: Буду зверствовать.
Добавлены: Функция вывода отладочной информации.

2010-06-26

Добавлены: Просто о ретуши фотографий в GIMP (часть 4).

2010-06-20

Добавлены: Просто - о Script-Fu в GIMP.
Удалены: Просто - о Script-Fu в GIMP.
Добавлены: Просто - о Script-Fu в GIMP.
Добавлены: ГИС Киров.

2010-06-04

Добавлены: Просто о ретуши фотографий в GIMP (часть 3).
Добавлены: Просто о ретуши фотографий в GIMP (часть 2).
Добавлены: Просто о ретуши фотографий в GIMP.
Добавлены: Песни про графику.

2010-06-03

Удалены: ...как считается рейтинг фотографий в Битриксе?;
Добавлены: А вы знаете как считается рейтинг фотографий в Битриксе?.
Добавлены: ...как считается рейтинг фотографий в Битриксе?.

2010-04-20

Добавлены: Первое приближение.
Добавлены: Дизаен рОстеть :).

2010-04-13

Добавлены: Про изобретение велосипедов.

2010-02-28

Добавлены: А вы знаете как порезать торт на N (не совсем) одинаковых частей?.

2010-02-23

Добавлены: Быстрочиталка.

2010-02-22

Добавлены: "Нравится, не нравится...".
Добавлены: МояCMS - бред на заданную тему.
Добавлены: А вы знаете как проверить термостат двигателя?.
Добавлены: А вы знаете что блины....
Удалены: А вы знаете что...;
Добавлены: А вы знаете....
Добавлены: А вы знаете как переворачивать картошку на полной сковородке, не просыпав на плиту?.
Добавлены: А вы знаете что слить антифриз из двигателя....

2010-02-20

Добавлены: А вы знаете что такое лента ФУМ?.

2010-02-16

Добавлены: А вы знаете что есть линукс-livecd....

2010-02-14

Добавлены: А вы знаете что....

2010-02-07

Добавлены: Никогда не сдавайся.

2010-02-02

Удалены: Само(?)компиляция на си-шарп;
Добавлены: Самокомпиляция на си-шарп.
Добавлены: лог-файлы и олап для ленивых.
Добавлены: Само(?)компиляция на си-шарп.

2010-01-28

Добавлены: Некоторый анализ цен.

2010-01-13

Добавлены: Кола+Ментос+Эффект домино.

2010-01-09

Добавлены: Несколько мыслей о Форте (продолжение).

2010-01-05

Добавлены: Несколько мыслей о Форте.

2009-12-26

Добавлены: Раз-два, Сталин идет, три-четыре....

2009-12-21

Добавлены: Таблица ASCII коды 0-127.

2009-12-20

Добавлены: Как померить размер без линейки?.

2009-12-19

Добавлены: Про пельмени.

2009-12-18

Добавлены: Про погоду и официальные данные.
Добавлены: PyODConverter для OpenOffice 3.
Добавлены: Пакетная обработка файлов в OpenOffice.

2009-12-13

Добавлены: I feel gooood.

2009-12-12

Добавлены: Грамматики предшествования. Демонстратор..
Удалены: Грамматики предшествования. Демонстратор..

2009-12-10

Добавлены: Грамматики предшествования. Демонстратор..

2009-12-07

Добавлены: Последовательность редактирования двух массивов и её применение в CMSimple (часть 2).

2009-12-01

Добавлены: Цвета дизайна.

2009-11-28
написал онлайн-демонстратор для приближения дробей деревом Штерна-Броко


Добавлены: Приближение дробей.
Добавлены: Лаборатория.

2009-11-27
вынес раздел доработок cmsimple из проектов на верхний уровень. Так как некоторый задел имеется, в течении (некоторого) времени выложу разные прибамбасы, которые позволяют весьма повысить удобство работы с этой системой.


2009-11-26
прикрутил основной функционал автоматического отслеживания изменений содержимого, ради которого и затевал всю эту бодягу с вычислением редакционного предписания.


2009-11-25
начал писать статью про вычисление редакционного предписания в разделе математические игрушки


2009-11-22
начал раздел СофтоРаскопки. Написал заметку по пару подстрочных переводчиков.

написал заметку про СЧЛГ. Вообще начал большой(?) цикл по раскрытию определений терминов устоявшихся в моей речи и смущающих разум окружающих.


2009-11-16
начал новый раздел - математические игрушки; выложил в него первую утилитку - дробное приближение рациональных чисел, используя дерево Штерна-Броко


2009-11-14
выложил давно обещанные фотографии из отпуска


2009-11-12
написал программу bakupz; выложил её в проектах


2009-11-07
запущен сайт в тестовом режиме; куча недоделок, надо дописывать часть скриптов, надо создавать часть под проекты.


2009-11-06
я вспомнил про собственный блог; вышла очередная версия lkJSON с пофиксенными багами

GISMETEO: Погода по г.Киров


Яндекс.Погода


Первый шаг. Интерпретация последовательности чего-то там в памяти

вопреки обыкновению, для простоты, решил все запихать в один файл исходника. комментариев нет - пока все тривиально. все что делает код - "выполняет" или "интерпретирует" некую последовательность из объектов в памяти.

   1:  using System;
   2:  using System.Collections;
   3:  using System.Collections.Generic;
   4:  using System.Collections.Specialized;
   5:  using System.Text;
   6:   
   7:  namespace lkfth00
   8:  {
   9:      public delegate void ForthDelegate(ForthProcess prc);
  10:   
  11:      public class ForthStack : List<object>
  12:      {
  13:          public void Push(object o)
  14:          {
  15:              Add(o);
  16:          }
  17:   
  18:          public object Top()
  19:          {
  20:              return Top(0);
  21:          }
  22:   
  23:          public object Top(int n)
  24:          {
  25:              int idx = (Count-1-n);
  26:              return idx < 0 ? null : this[idx];
  27:          }
  28:   
  29:          public object Pop()
  30:          {
  31:              object ret = Top();
  32:              if (Count > 0) RemoveAt(Count - 1);
  33:              return ret;
  34:          }
  35:   
  36:          public bool IsEmpty()
  37:          {
  38:              return Count == 0;
  39:          }
  40:      }
  41:   
  42:      public class ForthProcess
  43:      {
  44:          public bool IsCompiling = false;
  45:          public int ip = 0;
  46:          public List<object> mmr = new List<object>();
  47:          public ForthStack ps = new ForthStack();
  48:          public ForthStack rs = new ForthStack();
  49:   
  50:          public static void WriteParam(ForthProcess prc)
  51:          {
  52:              if (prc.ps.IsEmpty())
  53:              {
  54:                  Console.WriteLine("Params stack is empty!");
  55:              }
  56:              else
  57:              {
  58:                  object o = prc.ps.Pop();
  59:                  if (o == null) o = "";
  60:                  Console.Write(o.ToString());
  61:              }
  62:              prc.ip++;
  63:          }
  64:   
  65:          // выполняет или компилирует слово
  66:          public static void ProcessCmd(ForthProcess prc)
  67:          {
  68:              if (prc.IsCompiling)
  69:              {
  70:                  // пока нет режима компиляции
  71:   
  72:              }
  73:              else
  74:              {
  75:                  object o = prc.mmr[prc.ip];
  76:                  if (o is ForthDelegate)
  77:                  {
  78:                      ((ForthDelegate)o)(prc);
  79:                  }
  80:                  else 
  81:                  {
  82:                      prc.ps.Push(o);
  83:                      prc.ip++;
  84:                  }
  85:              }
  86:          }
  87:      }
  88:   
  89:      class Program
  90:      {
  91:          static void Main(string[] args)
  92:          {
  93:              ForthProcess prc = new ForthProcess();
  94:              prc.mmr.Add("Hello, world!\n");
  95:              prc.mmr.Add(new ForthDelegate(ForthProcess.WriteParam));
  96:              while ((prc.ip >= 0) && (prc.ip < prc.mmr.Count)) ForthProcess.ProcessCmd(prc);
  97:              Console.ReadLine();
  98:          }
  99:      }
 100:  }