vit_r: default (Default)
[personal profile] vit_r
in the darkВсё когда-нибудь случается в первый раз.

Сегодня я в совершенно официальной (хотя и очень внутренней) инструкции по запуску программы написал пункт «Pray».

Если кто-то скажет, что есть язык более дикий и система разработки более поганая, чем DOORS/DXL, не верьте. По сравнению с этим то, что пишут студенты в качестве курсовой по компиляторам, является образцом логичности и изящества, а Турбо-Си, который я использовал в прошлом веке на операционной системе DOS, прекрасен и недостижим как вершины Гималаев.

Самый распространённый тул. Стандарт для многих отраслей. Мощная парадигма. Возможность расширений, настройки и адаптации под внутренние задачи и процессы...


M Летчик в рукопашной схватке. / Система Кадочникова / http://www.youtube.com/watch?feature=player_embedded&v=1rvTO9EY0XI Массивы создавали какие-то извращенцы. А реализация хеша (который associative array) настолько бредова, что я минут десять рылся в Reference Manual не в силах поверить, что ключ можно получить только в цикле, перебирающем значения элементов.

Специально ходил по форумам, искал как выяснить размер хеша. Только честно. Только циклом. И в первый раз, и в десятый, и в сотый. Так что придётся запастись долготерпением. Или как некоторые делать Паскаль, пряча размер в особый элемент и не забывать прибавлять и убавлять единичку при изменениях.

Первый раз в жизни ставил комментарии

// L.125

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

Насчёт же дебаггинга и тестирования... Это происходило примерно так.

- Задача простенькая. Сделаем рекурсию. Запускаем... Умерло или думает? Вроде что-то происходит... Ну ладно, можно чай попить... Так. Что там у нас?.. Да. Можно было и пообедать... О! Сообщение. Так-с..

- «Скрипт работал слишком долго. Ждём дальше или убиваем?»

- Хм. Вроде что-то в файлы пишет. Значит продолжаем... Ничего нового?.. Ничего нового?.. Всё ещё ничего нового?.. О! Ожил. И что это такое?

- «Произошло что-то интересное. Отошлите лог в ИБМ для проверки и улучшений.»

- Ничего удивительного. Стек переполнился. Что там у нас за кнопочки в диалоге?

- «Close»

- Небогатый выбор. Интересно, как предполагается посылать? Ладно, закрываем. Впрочем, надо бы на всякий случай закрыть программу и запустить по-новой. Опа! Что это за диалог?

- «Произошло что-то интересное. Отошлите лог в ИБМ для проверки и улучшений.»

- Нафиг. Закрываем программу.

- «Произошло что-то интересное...»

- Так, закрываем все открытые окна. Всё? Вроде всё. Давим на «Exit»

- «Произошло что-то интересное...»

- Попробуем из таск-менеджера.

- «Произошло что-то интересное...»

...

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

.

Date: 2012-10-31 09:36 am (UTC)
From: (Anonymous)
" А реализация хеша (который associative array) настолько бредова, что я минут десять рылся в Reference Manual не в силах поверить, что ключ можно получить только в цикле, перебирающем значения элементов.

поясни, что ты имеешь в виду

у тебя есть хэш, содержащий пары ключ-значение (которые называется в разных языках по разному, в питоне и сишарп dictionary например), и ты хочешь найти набор всех всех ключей для данного значения V?

Date: 2012-10-31 09:42 am (UTC)
From: [identity profile] orleanz.livejournal.com
Предыдущий анонимный коммент про ассоц.массив был мой, логин слетел.

Date: 2012-10-31 12:29 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Во многих случаях надо получить ключи как массив и работать только с ним. Значения нужны не всегда.

Date: 2012-10-31 01:49 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" надо получить ключи

ок, ключи в мн.числе, когда понятно про что идет речь. в оригинальном постинге стоит "получить ключ", я уж подумал, что ты поиск конкретной пары делаешь

а ключи как массив и длина массива, да, в принципе полезные вещи, в питоне это as simple as

myArrayr.keys() и len(myArrayr)

но ведь никто не обещал что будет просто жить?

Date: 2012-10-31 03:11 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Реализовывать простейшие алгоритмы на дубовых языках - эти развлечения хороши, чтобы занять студентов. Мне нужно решить задачу. Как правило, не тривиальную. И очень хочется, чтобы технологии при этом не путались под ногами.

Date: 2012-11-01 11:33 am (UTC)
From: [identity profile] kababok.livejournal.com
Виталий, вопрос с некоторым оффтопом.

(Заранее извинюсь за, возможно, некоторую глупость оного и предупрежу, что моя - инженер по электромеханике и пром.контроллерам, далеко не программист в полном "понимании понятия").

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

Поскольку раньше никогда надо не было, сей факт меня несколько озадачил.

Это действительно во всех языках столбец или только в некоторых? (в моём случае речь шла о С++)

Date: 2012-11-01 11:53 am (UTC)
From: [identity profile] vit-r.livejournal.com
Не понял вопроса.

Массив в языках низкого уровня - это область памяти, разбитая на равные куски. Известен начальный адрес и смещение до следующего элемента.

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

Profile

vit_r: default (Default)
vit_r

February 2026

S M T W T F S
12 34 567
8 91011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 10th, 2026 05:07 am
Powered by Dreamwidth Studios