Простой парсер

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

Модератор: BV

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 0:31

Ревизия 14. На бейсике и маткад написать можно ;) Небольшая переделка кода и вуаля...
Изображение

Проект в репозитории. Как пользовать данной ревизией:
1) вызов листа: Файл\Лист;
2) кликаем на нём в любом месте, появится строка ввода;
3) набираем что-нить вроде "a := 1+2+5 -6 * 4" и жмём Enter. Я изменил знак присвоения, теперь это ":=". Двоеточие в конце не обязательно.
4) где-нить ниже опять щёлкаем и набираем: "a=". Как только нажмёте на равно значение подставиться, если его возможно посчитать.
5) Выражения можно таскать за них. Вход в редактирование - двойной клик.

Имейте в виду, что выражение вычисляется именно при нажатии на "=", а в качестве содержимого интерпретатору передаётся то, что слева. Потому рекомендую пока просто при изменении выражения ту его часть, где есть "=", писать новое и жать "=". Ответ просто прибавляется справа.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 4:16

Ревизия 15. От так от примерно...
П.С. Приму в подарок:
1. Класс для работы с XML (иначе сам напишу, а мне лень)
2. Специальный 2D эффект. Нужно при открытии сохранённого файла документа чтобы все выражения выскакивали из левого верхнего положения и с изменяемым ускорением занимали свои места, согласно файла. Это для красоты, конечно, как же без красоты. У меня все выражения - это Label-компоненты с прозрачным фоном, хотя можно двигать просто текст (может даже лучше).
3. Список желаний по функциональному наполнению этого движка. Я его планирую учебным (в плане архитектуры), потому всё будет по-русски. Тем не менее, считать на нём будет можно.
4. Ах да, как всё это дело вывести на печать? Буду печатать в pdf.
5. Как стандартными средствами выполнить функцию в отдельном потоке? Или Win32API?

На самом деле математические программы работают немножко не так, но для научного калькулятора с учебными целями - сойдёт.
У вас нет доступа для просмотра вложений в этом сообщении.
Россия навсегда!
Сетрификаты

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: Простой парсер

Сообщение FaKk2 » 06.01.2011 (Чт) 7:06

NashRus писал(а):Но после того, как 10 лет назад вышел Dot.Net

:shock:
NashRus писал(а):, в котором просто наплевали на мою венгерскую нотацию bBool и lLong, mb_Bool и ml_Long, я не стал так категоричен.

:shock: :shock:

Русский, иврит, китайский и любой другой страдают одним и тем же недостатком: непереносимостью. Даже в России ты не живешь в вакууме, твой код возможно придется поддерживать кому-то другому, переносить из системы в систему, и т.д. С интернациональными символами ты рискуешь на каждом шагу испортить код.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 13:49

Мой ответ будет очень прост. Ты пишешь приложение для системы противоракетной обороны C-300, либо мозговую начинку для нашей ракеты, либо навигацию для нашего истребителя и т.д. и т.п. Думаю, что кто-нибудь тут слышал про секретность и не надо рассказывать что, когда вы пишете код на английском - шпионы только радуются: на родном языке вся программная начинка - ЧТО ЗА ПОДАРОК! И даром, и своими же руками... как говорится
Даже в России ты не живешь в вакууме, твой код возможно придется поддерживать кому-то другому, переносить из системы в систему, и т.д.

Забудьте вы наконец о том, что прям весь Ваш код с нетерпением ждут во всех концах света. Это не так и далеко не весь.

Дугой пример. Пишите Вы расчёты по нашему ГОСТу, СНиПу. Вот скажите, кому они кроме нас нужны? Его не будут поддерживать нигде больше только потому, что государственная стандартизация других стран это не примет по определению. И думать иначе - мнить о себе много.

Про 1С я уже говорил. Наша бухгалтерия основана на нашем законодательстве, потому писать её на английском не было никакого смысла, а вот геммора было там много, т.к. пришлось бы делать совершенно тупую и ненужную работу по использованию языка-посредника для описания терминов из своего же законодательства - это маразм. Смысла её использования в США или Израиле нет, т.к. законы там другие и нормы другие.

Ясно? Или ещё примеров? И не забывайте, что наши космические аппараты использовали программы, написанные на русском языке, также как наши самолёты и системы С-300, потому они лучшие в мире. Работе на С-300 я обучался.
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 06.01.2011 (Чт) 14:01

uni писал(а):Мой ответ будет очень прост. Ты пишешь приложение для системы противоракетной обороны C-300, либо мозговую начинку для нашей ракеты, либо навигацию для нашего истребителя и т.д. и т.п. Думаю, что кто-нибудь тут слышал про секретность и не надо рассказывать что, когда вы пишете код на английском - шпионы только радуются: на родном языке вся программная начинка - ЧТО ЗА ПОДАРОК! И даром, и своими же руками... как говорится

1) Эм... Fakk2 как-бы не пишет С-300, он наоборот, ну, эм..., с той стороны, так сказать.
2) В общем, это (и далее следующее), по моему, либо бред, либо провокационный текст (троллинг).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Простой парсер

Сообщение Proxy » 06.01.2011 (Чт) 14:04

ну что ещё за бред? :/
Неужели не приходилось читать исходники какого-нибудь немца из германии? Аналогично и они забредают на наши форумы.
Конечно если вы пишите школоло калькулятор (парсер, простите), то оно никому даром не надо.
uni писал(а):а вот геммора было там много, т.к. пришлось бы делать совершенно тупую и ненужную работу по использованию языка-посредника для описания терминов из своего же законодательства - это маразм
1С отдельный разговор, хорошо?
Защищать информацию применением русского языка — дикость та ещё. В стиле бухгалтерских кактусов возле мониторов, которые "от радиации спасают" ага. Вообще никакой проблемы не представляет для "потенциального противника". Ни малейшей.
Follow the white rabbit.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 14:23

Хакер, ты со своим троллингом заколебал, честное слово. Вот тебе пример из моей жизни программиста, когда я для одной компании (РОСпайп из Питера) делал утилиту для расчёта труб. Она полностью основана на:
Гидравлический расчёт таблиц для труб Прагма РосПайп был произведён по методике, изложенной в СП 40-102-2000 «Проектирование и монтаж трубопроводов систем водоснабжения и канализации из полимерных материалов», п. 4.5, п. 5.6. Гидравлический расчёт таблиц одобрен и рекомендован к применению в качестве нормативного документа системы нормативных документов в строительстве постановлением Госстроя России №80 от 16.08.2000 г.

А вот кусок кода из-за которого у меня было куча геммора именно по этому поводу я занимался совершенно не нужным, бесполезным переводом терминов (см. в приложении): TCalcVariables = class(TObject)

Если бы я тогда знал, что на бейсике можно точно также всё написать на русском, то я проект бы зафигачил в несколько раз быстрее, т.к. эти наукоёмкие термины не так просто перевести, чтобы было адекватно, как тут говорят, для англоязычных будущих поддерживателей проекта. Я перевёл и дал имена нескольким десяткам терминам из СП 40-102-2000, но это ничто по сравнению с некоторыми другими документами. Это вообще примитивный расчсёт. Жаль я тогда парсингом не владел, сделал бы всё по-другому.

Могу покруче пример примести, но там убойный С++ из области промышленной автоматизации, не все поймут.

Защищать информацию применением русского языка — дикость та ещё. В стиле бухгалтерских кактусов возле мониторов, которые "от радиации спасают" ага. Вообще никакой проблемы не представляет для "потенциального противника". Ни малейшей.
Proxy, слуш ты вообще не в теме. Во время войны американцы в качестве шифровальщиков использовали индейцев. Вот и думай.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось uni 06.01.2011 (Чт) 14:32, всего редактировалось 1 раз.
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 06.01.2011 (Чт) 14:27

uni писал(а):Вот тебе пример из моей жизни программиста,

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

Я точно знаю, что красные лыжи не лучше синих, так как цвет не влияет на их эксплуатационные характеристики. Ещё я знаю, в определённой сборной конвенционально установлено использование лыж синего цвета. И нарушение этой конвенции под предлогом «красные реально лучше» я всерьёз рассматривать не буду никогда.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Простой парсер

Сообщение Joo » 06.01.2011 (Чт) 14:29

Хакер писал(а):По примеру с комментариями на русском языке и идентификаторами на английском. И точка

Согласен, тут даже не поспоришь ;-)
Идентификаторы на русском, когда весь код на английском, как-то смотрится несуразно, да и программировать постоянно переключая язык довольно неудобно. Понимаю русские идентификаторы в 1С, так там все на русском, включил русский язык и пошел шпарить.
uni писал(а):Привью её и вам, т.к. она очень хорошая.

При коллективной разработке, несомненно штука хорошая, но вот для одиночек, только лишние телодвижения.
NashRus писал(а):Там в НЕТ вообще не понятно где переменная, где функция, а где константа. Почему-то нет нотаций.

Это как-так непонятно??? Что-то ты заливаешь, все там понятно, код как код. Нотация это как бы рекомендация к "оформлению" кода, VB.NET,C# и т.д. тебя не чем не ограничивает, и не мешает оформлять код в соответствии с какой либо нотацией.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 14:34

Хакер писал(а):
uni писал(а):Вот тебе пример из моей жизни программиста,

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

Я точно знаю, что красные лыжи не лучше синих, так как цвет не влияет на их эксплуатационные характеристики. Ещё я знаю, в определённой сборной конвенционально установлено использование лыж синего цвета. И нарушение этой конвенции под предлогом «красные реально лучше» я всерьёз рассматривать не буду никогда.
Тоже правильно - окучивай свою грядку.

Я работал автоматчиком на заводе, где программы были написаны, в частности, нашими программистами на английском языке для промышленных контроллеров Siemens SIMATIC 400. "Эксплуатационные характеристики" для автоматчиков включают возможность исправления нами ошибок в коде. Вот пример малой части реальной программы для промышленных контроллеров 400-ой серии, которые управляют водоподготовкой на Берёзовском ЭМЗ (ЗАО БЭМЗ). Как видно, идентификаторы там на английском, а комментарии на русском.
Изображение
Внимание вопрос. Этот проект написан специально по заказу для этого завода с этим конкретным оборудованием. Обслуживать его будут отечественные автоматчики. Написан код-диаграмма русскими для русских для русского завода. Спрашивается: зачем там идентификаторы на английском?

Этот вот вопрос таких как многие тут из вас ставит в такой конкретный ступор, что просто диву даёшься, как вы все с детства зомбированы не по детски. Вам тут чел с опытом обслуживания такой реальной системы втолдычивает: очень не удобно автоматчикам (а они все обычные люди, а не гуру в английском, бывает даже только со словарём) в случае аварийной или другой нештатной ситуации понимать и отыскивать в английских терминах логику, которая дала сбой. Английская аббривиатура не даёт образа в мозгу, а русская даёт. Когда код большой, а он обычно такой большой, что на заводах держат целый цех АСУ с кучей автоматчиков, то полного понимания может не наступить и через год эксплуатирования такой системы именно по той причине, что идёт отторжение на уровне нерусскости.

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

Поэтому, уважаемый Хакер, эксплуатировать не удобно, т.к. бывает код, который всегда должен быть виден, как в автоматизации, потому что от оперативности действия автоматчиков зависит когда включат электричество в городе, если вдруг всё "полетело". А на заводе зарплата цеха от этого зависит, если простой из-за долго искания причин продлиться больше установленных месячных норм. Такая вот жизненная математика. А ты тут со своими лыжами.
Последний раз редактировалось uni 06.01.2011 (Чт) 15:47, всего редактировалось 1 раз.
Россия навсегда!
Сетрификаты

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Простой парсер

Сообщение Twister » 06.01.2011 (Чт) 15:32

5. Как стандартными средствами выполнить функцию в отдельном потоке? Или Win32API?
В VB это будет сделать проблематично. Вы тут с языком промахнулись.

По поводу разгоревшего спора хотелось бы отметить вот что.
Вам, uni, очень [не?]повезло с родом программирования. Дело в том, что тенденция так оформлять код присутствует в основном у тех, кто тесно работает с физикой/математикой и прочими интересностями. Причины Вы привели верные - узкая специфика, грубо говоря. Лично мне как-то довелось устраиваться программистом в Казахстанский НИИ Горного Дела, так я оттуда с радостью убежал через две недели. Просто не было ни малейшего желания ковыряться в подобном, прошу прощения (и надеюсь не обидеть), говнокоде. А тут открываю Ваш MainUnit.pas и вижу уже давно переставшие сниться в кошмарах строки:
Код: Выделить всё
var
Lv, Lsh, Htr, Eo, Mu, Sigmao, Etau, Gamma, GammaVz, Egr, m, Hw, n, g, F, s: double;
Kok, Ktau, Kw, Kgr, Kg, Ksigma, Kzpsi, Kz, S_cond: double;
P, qn, qt, y, I, A, qgr, qc, Go, D, Psi_gr, Psi_t, Psi_m, Psi: double;
Eps_p, Eps_c, Eps_pp, Eps_pn, Gtau, Kug, Kov, Kzu, Qgv, qvn, q_ust: double;
Din, Dout, IIs, hs_d, Ke, v, e, Gammav: double;

Могу высказать лишь респект, ибо ниже по коду идут комментарии к переменным. В том НИИ таким и не пахло, так что отладка дельфовой программы по сложности сравнивалась с отладкой двоичного кода без символов.

Вы неглупый человек и должны понимать, что основная масса программистов - прикладники и системщики. Им чуждо то, что Вы пропагандируете. Так зачем нарываться на холивары?
А я все практикую лечение травами...

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Простой парсер

Сообщение Proxy » 06.01.2011 (Чт) 15:34

uni писал(а):окучивай свою грядку

А разве у нас не заведено за правило более уважительное отношение к другим участникам конференции?
Follow the white rabbit.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Простой парсер

Сообщение Twister » 06.01.2011 (Чт) 15:41

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

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 16:00

Twister, я расширил свой пост выше. Системщики бывают разные, я нескольких типов системщик :)
То, что "системный" код пишут на англиском - целиком заслуга компаний таких как Intel, IBM, Apple и пр., т.к. даташиты на их камни изначально содержат определяющие константы на английском. Только и всего и не более того. Они формируют заголовочники и именно поэтому компиляторы потом получаются англоязычными, а затем и операционные системы.
Сейчас же уже XXI век и вполне реально по типу ОС "Фантом" сделать свой виртуальный "национальный камень", который будет совершенно полностью поддерживать уникод и многие задачи можно будет писать на том языке, где тебе понятны образы.

Если мыслить нуждами одного программиста, то по-вашему правда у вас, но если мыслить поколениями программистов и причинами отсталости нашей IT индустрии - правда у меня, т.к. для того, чтобы реально начать программировать нужно сначала выучить английский, а в странах, где английский - государственный (таких много) таких проблем нет. Вот я о чём. Там программировать реально можно уже с малых лет, мы же поколениями тратим время на переводы туда-сюда, когда они это же биологическое время тратят с пользой. Попробуйте оторваться от обыденности и посмотреть так сказать чуть сверху.
В VB это будет сделать проблематично. Вы тут с языком промахнулись.
Да, это интересно, спасибо.
Россия навсегда!
Сетрификаты

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Простой парсер

Сообщение Proxy » 06.01.2011 (Чт) 16:19

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

Предложение обособиться от всего мира и делать "своё программирование с шахматами и поэтессами"? Приемлемо для задач, связанных со специфическими прикладного уровня, бух. учёт тот же (и опять же тут тоже нет однозначного мнения, т.к. все "за" укладываются в "идентификаторы понятней больному мозгу"), но неприемлемо там, где требуется международный опыт. А так как распространения эсперанто в XXI веке я что-то не ощущая, то считаю вполне приемлемым держать английский (английский США) в качестве международного. Не представляю сколько будет стоить перевести все RFC на русский и держать в актуальном состоянии (опять же от латентности ну никак не избавиться, машинный перевод пока ещё на уровне каменного века). И всю документацию ISO... И всю документацию всех вендоров железок. А в чём смысл этих затрат? Только из-за того, что лень учить язык?
Можно конечно делать как было в совках, где действительно всё строилось на шахматах и поэтессах, но отказ от международного опыта, накапливаемого цивилизацией влечёт сильное технологическое отставание и нерациональные расходы.
И да, не стоит забывать о том, что власть и государство у нас сильно разделились. Любые потуги правительства выкатываются в распил наших с вами бюджетов и очередные палки в колёса здравомыслящим специалистам. Любые телодвижения этой инертной массы ни к чему хорошему уже давно не приводят, так что баламутить большую воду ради каких-то сомнительных целей считаю неразумным. Засилие ГОСТа, очередные загаживания системы образования и лишние указы нам совсем ни к чему, пускай всё будет так как есть. Вспомним домен ".рф", вспомним "геопортал"... лучше бы просто на виллах отдыхали на наши деньги, только бы засунули куда подальше свою инициативу.
Follow the white rabbit.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Простой парсер

Сообщение arthur2 » 06.01.2011 (Чт) 16:39

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

И главное: холивар про то, как называть переменные, здесь совершенно не нужен и уводит в сторону от действительно интересной темы - самого кода. Причем, с каждым постом уводит всё дальше и дальше. По хорошему, тему бы вообще разделить на холивар и парсер.

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

Насчёт многопоточности: единственный "законный" способ в бейсике - ActiveX.exe viewtopic.php?p=6723091
Артур
 
   

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 16:43

А в чём смысл этих затрат? Только из-за того, что лень учить язык?
Я по колхозному на пальцах:

1. Сколько нужно времени, чтобы обучить программированию в 1С челу знающему и не знающему английский? Примерно одинаковое :)
2. Сколько нужно времени, чтобы обучить программированию в Visual Studio 2010 челу знающему и не знающему английский? Примерно разное :)

Это был стратегический ход человека (директора-программиста), который посмотрел на всё сверху, а не вдоль.

Можно конечно делать как было в совках, где действительно всё строилось на шахматах и поэтессах, но отказ от международного опыта, накапливаемого цивилизацией влечёт сильное технологическое отставание и нерациональные расходы.
А нашего опыта в международном много? Что ж мы ради чужого опыта должны от нашего отказываться? А вы уверены, что этот международный опыт не приведёт к краху нашу страну? А? :) СССР развалили при помощи международного опыта, когда упали цены на нефть. Лучше жить стали? А ссудный процент? :) Доверяй, как говориться, но проверяй. Не всё то, что ISO заведомо правильно и не всё то, что ГОСТ Р - заведомо ложно.

А "засилие ГОСТа" - это странная фраза.

Предлагаю считать, что каждый пишет так, как ему нравится.
Ну уж я и не претендовал на смену языковой парадигмы, я лишь хотел пояснить, что русский идентификатор имеет право на жизнь и случаи эти далеко не так редки, как может показаться.
Россия навсегда!
Сетрификаты

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Простой парсер

Сообщение Proxy » 06.01.2011 (Чт) 16:55

uni писал(а):который посмотрел на всё сверху, а не вдоль.
Как-то сильно высоко посмотрел, не заметив довольно очевидных последствий.
uni писал(а):А нашего опыта в международном много?

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

Имеет право на жизнь. В специфических задачах, актуальных только для одного региона. Такие есть, но вся выгода только в более простом соотношении с документацией. Стоит только в документации ввести дублирующие термины (в экономике, кстати так и есть, в медицине так и есть, много где так и есть) на международных языках (англ. или латынь) и вся выгода скатывается на нет. А вот взаимодействие с другими программными продуктами, внедрение стороннего кода и т.д. сильно упрощается.
Имеет право на жизнь, да, не спорю, но только из-за неадекватности нормативных документов (ага, бухи всегда люто бешено негодуют с них, т.к. часто размыты, неоднозначны и часто меняются без всякого профита) и иной документации.
И да: дублировать ключевые слова в документах международными в скобках ну никак не вредит читаемости. Главное чтобы дублирование было однозначным. Из какого-нибудь общего словаря, например. Хотя возможно я как всегда слишком наивен и надеюсь на то, чего не произойдёт никогда. Возможно...

Да: постараюсь больше не клонить тему к оффтопу (но и не я начал). Буду наблюдать что там дальше будет с парсером.
Follow the white rabbit.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Простой парсер

Сообщение arthur2 » 06.01.2011 (Чт) 17:06

Предлагаю всё-таки холивар перенести в холивары, а здесь оставить парсер :)
Артур
 
   

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 17:12

Как-то сильно высоко посмотрел, не заметив довольно очевидных последствий.
Главбух - правая рука руководителя. Бухгалтерия - это основа предприятия. Зарплате 1С'овцев можно позавидовать, они никогда не остануться без работы. Какие ещё последствия? Выход на международные рынки? А российского и стран СНГ мало?
В ИТ малый вклад, но как раз таки из-за отсталости и изоляции.
Я имею своё мнение по этому поводу. Писал выше - мы тем более будем отставать в этой сфере, чем более будем пользоваться везде английским. Причина - человек смертен, а обучиться новому нам нужно в 2 раза больше биологического времени (у кого-то больше, у кого меньше). Следовательно вход в общее дело возможен только через освоение английского - вот простая причина нашей отсталости.

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

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

Предлагаю всё-таки холивар перенести в холивары, а здесь оставить парсер
Тогда будут спрашивать почему там всё по-русски :)
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 06.01.2011 (Чт) 17:14

uni писал(а): Не всё то, что ISO заведомо правильно и не всё то, что ГОСТ Р - заведомо ложно.

Какой-то больной патриотизм.

Я не против ГОСТ-ов, я люблю ГОСТЫ, но и люблю ISO, и DIN и IEEE, вообще все стандарты люблю.

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

Нет никакой здравой причины переименовывать анкер в зацепун. И вместо аш-два-о писать вэ-два-ка.

В мире компьютеров и программирования принят английский язык. Никакого вреда патриотическим чувствам здесь нет.

Английский вообще занял своё господствующее положение во многих отраслях благодаря своей краткости и конкретности. Русский я предпочитаю считать используемым для поэзии, английский — для дела.

SetReadyState
УстановитьСостояниеГотовности

try...catch
попытаться...отловить

LockWindowUpdate
ЗаблокироватьОбновлениеОкна

LeaveCriticalSection
ПокинутьКритическуюСекцию

MapViewOfFile
СпроецироватьОтображениеФайла

Почувствуй разницу.

И ещё сравни, насколько графически разряжен латинский шрифт, по сравнению с кириллическим. Это прямо влияет на простоту, скорость и удобство чтение, утомляемость мозга и глаз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Простой парсер

Сообщение Joo » 06.01.2011 (Чт) 17:32

uni писал(а):1. Сколько нужно времени, чтобы обучить программированию в 1С челу знающему и не знающему английский? Примерно одинаковое
2. Сколько нужно времени, чтобы обучить программированию в Visual Studio 2010 челу знающему и не знающему английский? Примерно разное

Лично я тебя не понимаю.
Одно дело обучать языку программирования синтаксис которого это русские/английские слова, и совершенно другое дело использовать русские идентификаторы в "англоязычном" языке программирования, равно, как использование английских идентификаторов в "русскоязычном" в том же 1C.

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

Хотя это все дело вкуса. Но лично у меня такой код:
Код: Выделить всё
Public Sub ДобавитьЭлемент(Имя As String, Свойство As Integer, Содержимое As ОбразРезультата)
    Dim внИмя As New CString
    Dim внСвойство As New CInteger
   
    внИмя.StringValue = Имя
    внСвойство.IntegerValue = Свойство
   
    Me.Имена.addElement (CVar(внИмя))
    Me.Свойства.addElement (CVar(внСвойство))
    Me.Содержимое.addElement (CVar(Содержимое))
End Sub

Вызывает отвращение, и я бы по собственной воле не в жизнь не стал поддерживать/дорабатывать ПО с таким кодом.
Вот так гораздо лучше (ИМХО конечно):
Код: Выделить всё
Public Sub AddItem(Name As String, Property As Integer, Content As ImageOfResult)
    Dim _Name As New CString
    Dim _Property As New CInteger
   
    _Name.StringValue = Name
    _Property.IntegerValue = Property
   
    Me.Names.addElement (CVar(_Name))
    Me.Properties.addElement (CVar(_Property))
    Me.Content.addElement (CVar(Content))
End Sub
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Простой парсер

Сообщение Viper » 06.01.2011 (Чт) 17:38

uni писал(а):Дугой пример. Пишите Вы расчёты по нашему ГОСТу, СНиПу. Вот скажите, кому они кроме нас нужны? Его не будут поддерживать нигде больше только потому, что государственная стандартизация других стран это не примет по определению. И думать иначе - мнить о себе много.
Гм, скоро 20 лет как работаю в ВПК, ни разу не видел, чтобы хоть кто-то что-то оборонное.расчетно и так далее писал используя идентификаторы на русском языке.
Весь мир матрица, а мы в нем потоки байтов!

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Простой парсер

Сообщение arthur2 » 06.01.2011 (Чт) 18:16

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

Обрати внимание: постов по сути практически нет - все про нотацию. Хочется вернуться в русло темы.
Артур
 
   

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 18:50

Хакер, я немножко о другом. Вот какую про какую разницу. Всегда привожу простой пример:
В качестве курьёзного примера, показывающего, что текст может быть понятен и при этом вообще не содержать словарно-нормальных фонетических образований (т.е. смысл содержащихся в нём «фонетических образований» обусловлен контекстуально), приведём анекдот, найденный в интернете:
«По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, вкокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом».
А фактически — на следующем шаге обобщения мы читаем всё предложение целиком; на следующем шаге обобщения мы читаем весь абзац целиком и т.д. Другое дело, что такого рода факты целостного восприятия фрагментов текстов и текстов в целом мы далеко не во всех случаях осознаём.
А теперь попроси начинающего программера на минуту посмотреть на твои идентификаторы в русском и английском варианте. Что он увидит и вспомнит после этой минуты? А что запомнит? Конечно то, что ему проще.
Английский текст труден, потому что его нужно читать, а русский текст мы видим, а не читаем. Для многих слово set - это русское "установить", "назначить", а не образ самого действия. Это только со временем приходит видение, а не чтение. Попробуй взять английский текст и смешать в нём буквы (можно написать такую программку :) ), а потом "увидеть" его по аналогии с русским. Думается мне возникнут трудности. Вот эти трудности мешают многим в быстром освоении алгоритмов, т.к. создают невидимый психологический барьер в понимании. Да и текст (листинг) на русском быстрее сканируется мозгом. Я вот бегу по своему парсеру и сразу "вижу", а не "читаю" идентификаторы. Нет барьера, а у меня очень длинный путь программиста, начиная от МК-61 и синклер-бейсика на спектруме.

Viper , меня три года обучали внутренней архитектуре ЗРК С-300, в том числе её ЦВМ. Уверяю :) там английского духа не вообще, а регистры называются магазинами. Так вот. Про это я ручаюсь. Некоторые товарищи видели программы для наших истребителей... пруфлинк не нашёл к сожалению. Эти машины защищают нашу страну от "горячего" оружия. К сожалению, этого мало оказалось. Это по поводу ВПК.

Лично я тебя не понимаю.
Одно дело обучать языку программирования синтаксис которого это русские/английские слова, и совершенно другое дело использовать русские идентификаторы в "англоязычном" языке программирования, равно, как использование английских идентификаторов в "русскоязычном" в том же 1C.
Они были первопроходцами, на тот момент и это уже было серьёзным поворотом в мышлении.
Вызывает отвращение, и я бы по собственной воле не в жизнь не стал поддерживать/дорабатывать ПО с таким кодом.
Вот так гораздо лучше (ИМХО конечно):
А здесь уже первопроходец я. Да, не очень красиво. Знаки подчёркивания я давно не использую, т.к. обычно такие переменные зарезервированы под внутренние нужны системных библиотек. Лучше к этому не привыкать. Тут мне нужно было как-то разделить локальные и глобальные имена. Увы, среда бейсика подсвечивает их одинаково, а вот в других средах сразу видно что локальное, а что глобальное и нет нужды в суффиксах.

А теперь по теме. Я вылизывал пока только сам парсер. Имейте в виду, что он портирован с языка Java, где всё суть классы, поэтому может показаться странным класс ОбразСвойств, который выглядит как структура, а создан в виде класса.

На этот момент Ревизия 16 поддерживает:
- три типа значений переменных: boolean (ТИП_ЛОГИКА), double (ТИП_СКАЛЯР) и string (ТИП_СТРОКА) (многомерные массивы заложены уже, но пока не до конца реализованы);
- внутренние математические функции, около 10 штук;
- однострочные комментарии, начинающиеся '//';
- полная поддержка исключительных ситуаций - вы можете отследить любую ошибку (если правильно её опишете);
- оператор присвоения ":=" и работу с глобальными переменными;

В принципе всю функциональность можно описать одной лишь грамматикой, но её не сразу поймёшь. Класс JVector и Vector отличаются только типом возвращаемого результата. JVector работает с объектными типами, для которых нужен set, а Vector с обычными типами. Буква "J" означает, что он работает с экземплярами классов и имеет интерфейс как явовский Vector.

По поводу обработки ошибок. Понятия не имею как тут их надо обрабатывать, поэтому я сделал просто - разместил обработчики в каждом методе. Весь поток ошибок складывается в специальный ВекторОшибок, первый элемент которого - причина исключения, остальные - снежный ком следующих ошибок. Признак ошибки - публичное поле Ошибся. Очень интересно писать: If Разборщик.Ошибся then и т.д.
Россия навсегда!
Сетрификаты

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Простой парсер

Сообщение Debugger » 06.01.2011 (Чт) 18:51

uni писал(а):":="

Нет!!!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 06.01.2011 (Чт) 18:59

uni писал(а):там английского духа не вообще, а регистры называются магазинами.

Не имел дело с ракетным комплексом С-300, но смею предположить, что магазинами называют стеки, а не регистры.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 19:13

Хакер писал(а):
uni писал(а):там английского духа не вообще, а регистры называются магазинами.

На имел дело с С-300, но смею предположить, что магазинами называют стеки, а не регистры.
Да, ты прав. Магазинная память - буквально.

Debugger, выбрать в коде эти символы - заменить пару строчек. Если надо скажу как. Это сделано для того, чтобы на листе вычислений отличать присваивание от вывода результата.
Код: Выделить всё
        Case ":":
            Литера = Mid(Текст, Свойства.Позиция + 1, 1)
           
            If (Литера = "=") Then
                Свойства.Позиция = Свойства.Позиция + 1
                Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент
                Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ПРИСВОИТЬ
                ПолучитьЭлемент = Свойства.ТекущийЭлемент
                Exit Function
            End If
           
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент
            Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_ДВОЕТОЧИЕ
            ПолучитьЭлемент = Свойства.ТекущийЭлемент
            Exit Function
           
        Case "=":
            Свойства.ПредыдущЭлемент = Свойства.ТекущийЭлемент
            Свойства.ТекущийЭлемент = ЭЛЕМЕНТ_РАВНО
            ПолучитьЭлемент = Свойства.ТекущийЭлемент
            Exit Function
Сравни этот кусок из текущей ревизии с кодом из старой ревизии. Скачай из репозитория не головную, а ревизию поменьше. Можешь придумать свои собственные символы для этой операции :), например "<-" такой.
Россия навсегда!
Сетрификаты

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Простой парсер

Сообщение Proxy » 06.01.2011 (Чт) 19:14

uni писал(а):Главбух - правая рука руководителя. Бухгалтерия - это основа предприятия. Зарплате 1С'овцев можно позавидовать, они никогда не остануться без работы. Какие ещё последствия? Выход на международные рынки? А российского и стран СНГ мало?

Ну уровне одного предприятия — это не на уровне всей сферы. ИТ комьюнити шире одного программиста 1С. Рынок шире одной конторы, не имеющей партнёров в ит-сфере. Хотя мне поравну, честно говоря на какой-нибудь загинающийся ЖЭК без каких либо перспектив, который использует ПО программиста Васи Пупкина для учёта сан.узлов. Если есть какие-либо перспективы развития, то это грозит полным перетрясанием всей ИТ структуры в последствии, что и есть не слишком позитивная перспектива. Или что ещё хуже, так это наоборот трудности привлечения иностранного контингента ИТ из-за кривой ИТ инфраструктуры предприятия. Класть на тех, кто живёт одним днём и руководствуется сомнительными выгодами.
Следовательно вход в общее дело возможен только через освоение английского - вот простая причина нашей отсталости.

Потому и надо учить...
uni писал(а):2. Сколько нужно времени, чтобы обучить программированию в Visual Studio 2010 челу знающему и не знающему английский? Примерно разное :)

Гаидов на русском полно. От того, что вместо "For ... to ..." там будет написано "Цикл ... до ..." что-то измениться только для умственно неполноценного. Базовый технический английский язык, достаточный для понимания спецификации к открытому сетевому протоколу (а как их вообще предлагаете учить без знания англ? Или ну их, забугорных антихристов, будем свой православый гугл делать?) требует на изучение неделю-две (для умственно неполноценных три)? Или может центр перевода всего и вся откроем? А на какие шишы опять же? И как держать постоянно в актуально состоянии переведённые копии документов?) Если человек ковыряется в носу и пишет "извени" и это ему мешает в жизни, то это недостаток его культурного уровня и отношение к школе (т.е. обучаемость), а не вина англоязычной документации.
uni писал(а):Человеку проще понять алгоритм - а это одно из нескольких вещей, обладание которым делает тебя настоящим программистом.

А "настоящий программист" — это вообще кто? Тот, кто 5 (или сколько там) профессионально пинает напрочь не нужный никому шел, а потом негодует, что конечный пользователь не рад? Или может тот, кто следит за изменениями ИТ сферы и имеет актуальные знания? Кто он вообще, этот "настоящий программист"? Если я напишу православный "привет мир", но не вкурю в спецификацию ftp, то я "настоящий программист"? Или может нужна чёлка и значок "С# as like as death"?

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

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 06.01.2011 (Чт) 19:33

А "настоящий программист" — это вообще кто?
Программист - тот, кто умеет писать программы. А кто-то из великих сказал, что программа - это структура данных и алгоритм. Где тут про язык? И по секрету скажу, что даже детей можно научить этому не сложному делу :)
Пруф линк: http://binardik.ru/
Россия навсегда!
Сетрификаты

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 18

    TopList