yacc: Все сообщения за 14 Февраля 2024 года

 
ПнВтСрЧтПтСбВс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29

yacc

старожил
★★★
yacc>> Если ты не понял, то индексно-последовательные файлы это то, что сейчас называют ISAM - Indexed Sequential Access Method - т.е. запись добавляется последовательно в конец, но есть отдельные файлы индексов.
Татарин> ...которые (точнее, который) в случае ИБМ просто висели в памяти и являлись просто указателями.
Татарин> А всякие деревья, которые ты сверху вешаешь, - это уже особенности реализации индексов, которые могли быть так, а могли быть этак. И да, реализация деревьев в машкодах - тоже вовсе несложно.
В памяти висел только мастер-индекс для обращения к файлу.
И да, прикинь, это дерево.
Вот навскидку ассемблерный код работы с деревом, достаточно простой ... всего триста строчек

A simple binary tree program - in assembler

Get link Facebook Twitter Pinterest Email Other Apps I believe every programmer must learn assembly programming. It brings the programmer and the machine closer and strengthens the bond between them. I learned the term GIGO (Garbage In Garbage Out) when I got first introduced to computer programming. Nothing has changed since. The languages and their environments have become better beyond doubt. Still, a computer and its resources are as good as its programmer.Assembly language makes you understand how the machine is working beyond all that glittery higher level languages. //  Дальше — www.thechauhan.dev
 

Татарин> Вот тебе объяснение на русском:
Я в курсе устройства. Равно как наличия области переполнения и перестроения списка.
Которое ты собрался сделать... за час!

Татарин> И уж, блин, присобачивать сюда BTrieve :D ... сравнивать MSV с нынешней ОС... LIBRARIAN с ГитХабом и визуальным отладчиком... :D
Это твой час - с визуальным отладчиком.
У меня перманентное впечатление что я разговариваю со школотой-зумером, которому на вопрос "сколько тебе времени потребуется сделать мое фото и дать его мне" ответит "5 секунд"
И в общем-то да, СЕЙЧАС так оно и будет - ровно столько займут его действия чтобы меня сфоткать и тут же мне скинуть в мессенджер.
А вот на тот же самый вопрос уже даже в 1985 ответ был бы другой: потому что даже если предположить что у человека последний кадр в фотоаппарате, то после съемки чтобы дать его мне он должен был проявить пленку и напечатать кадр, чтобы отдать его мне. Это минимум минут 20 на пленку ( проявка, промывка, фиксаж, сушка) и минут 20 ( фокусировка увеличителя, проявка, промывка, фиксаж, глянцеватель ) на печать при условии что реактивы готовые.
Уже 40 минут - т.е. в 40 * 60 / 5 = 120 - в сто двадцать раз медленнее !

Поэтому когда ты говоришь - "мне надо час" я уже оцениваю это как скорострельное пижонство, которое в 99% случаев - г**нокодинг.
Т.е. человек НЕ БУДЕТ анализировать ошибки - скажем коды возврата fopen, fread, fwrite, malloc а накидает тупо код который работает только в примитивном случае.

Однако же я ожидаю оценку - СКОЛЬКО ВРЕМЕНИ ПОТРЕБУЕТСЯ ДО РЕЛИЗА !
Т.е. со всеми юнит-тестам, обработками ошибок и документированием их, некоторыми доками и минимальным описанием, с учетом системных требований - т.е. то, что называют полноценным релизом.
А не быстроговнокод за 5 минут, которым ты размахиваешь.

Татарин> Понимаешь, весь софт тех лет - прост и примитивен с нынешней точки зрения (разве что матрасчёты и тогда имели огромную трудо- и наукоёмкость).
Татарин> То, чего ты (или там Факир) не хочешь, не можешь, не в состоянии понять: сложность того софта была относительной.
Именно это как раз я и понимаю
Поэтому для меня трудоемкость - это количество строк кода + сложность алгоритмов + сложность документации если там много ветвлений по разным случаям.
Это - объективная оценка.
Относительно которой можно судить сколько человеко-часов потребуется в разных условиях, как-то: PC хотя бы с DOS и визуальным отладчиком ( например Borland TASM + TurboDebuger ) - это быстрый вариант,
или Минск-32 + лента + перфокатры + блок-схема - это совсем другой случай.
Причем там бы сами программисты напрягли бы тетку-чертежницу рисовать им всю блок-схему на нескольких листах А0 чтобы было понятно что где. А также как распределить адреса.

А "я за час сделаю" - такой вид "оценки" - это в мусорку сразу.

И да - внезапно на С или TP написать BTrieve - это даже попроще будет. Там самые неочевидные вещи это только блокировки при многопользовательском доступе ( внезапно на 360 он тоже возможен! ), а сам движок доступа к блокам и деревьям, файлам и индексам - он как раз несложный - там и цилиндрами, томами и дорожками париться не надо - DOS FAT все возьмет на себя - пиши только алгоритмы доступа внутри файла.
Проще чем на ассемблере писать индексно-последовательные файлы.
 120.0.0.0120.0.0.0

yacc

старожил
★★★
yacc>> тут ЕС ЭВМ с дисками был на голову впереди
П.З.> Ну вот зачем к дискам еще и ЕС ЭВМ цеплять?
Если кто не знает - индексно-последовательные файлы только на дисках и были возможны.
На ленте такое не прокатит - все будет тормозить - и поэтому этого не было даже у 360.
И да - самый базовый вариант ЕС 1020 включал НМД ЕС-5056
И да - поэтому КОБОЛ на Минск-32 и был усечен - ввиду того что железо не поддерживало работу с индексно-последовательным файлами и част связанных с ним операторов языка.
 120.0.0.0120.0.0.0

yacc

старожил
★★★
Anarky> Давайте предположим что мы делали свои собственные процессоры, периферийные микросхемы и тп. Что бы мы получили к настоящему моменту?
А если бы мы использовали чисто свое ПО - на русском языке - а, например, таковым была Альфа и многие другие языки типа автокода ( например БЕМШ ) или предметных языков, то все равно бы запад их у нас не взял бы.
Равно как и прикладное ПО на русском языке.
И уж тем более это бы не стало международным стандартом.

Вот скажем истребители у нас покупали - тот же Миг-21 - в том числе и финны. И танки покупали.
А уж системы ПВО и поныне популярны.
А ПО - нет.

Т.е. железо бы можно было бы продать еще, а вот ПО - нет.
 120.0.0.0120.0.0.0

yacc

старожил
★★★
Татарин> Коммунисты так относились во всем "капиталистам". Но в первую очередь к русскому народу: до остальных-то руки не дотягивались
Я так понимаю что по знанию экспозиций следующих учреждений:
- Latvijas Okupācijas muzejs - музей оккупации Латвии
- Genocido aukų muziejus - музей жертв геноцида Литва
- Національний музей Голодомору-геноциду - Национальный музей Голодомора-геноцида Украины

тебе можно ставить твердую 5 с плюсом! Да еще как активиста отметить! :p
 120.0.0.0120.0.0.0

yacc

старожил
★★★
Татарин> Триста строчек кода - это вообще ни о чём. Это меньше дня работы. В целом за средний урок биологии (с натуральными отвлечениями, потому что даже на биологии нужно что-то делать) у меня писалась страничка машкода - 20-50 более-менее выверенных (в голове) команд, которые можно было просто вбить по приходу домой.

Отлично!
А теперь посчитаем.

ДАНО:
КСД ( Количество Строк в День ) = 400 ( ибо 300 это меньше дня работы )
ЧРДГ ( Число Рабочих Дней в Году ) = 250 ( примем это цифру для круглости и в СССР праздников было меньше так что почти так и есть )

ТОГДА:

КСГ ( Количество Строк в Год ) = 400 * 250 = 100 000 срок в год - столько способен писать Татарин


Теперь мы возьмем дословную цитату из книги про развитие ЭВМ и ПО в СССР
В докладе разработчиков Альфа был показан классический прецедент просчета в определении плановых экономических показателей и трудоемкости больших программных продуктов с универсальным коэффициентом недооценки трудоемкости в 2-3 раза, подтвержденным впоследствии многими проектами.
Авторы клали на разработку системы 15 человеко-лет для построения 15000 команд, затратив на самом деле свыше 30 человеко-лет и соорудив систему в 45000 команд.
 


Т.е. мы имеем, что в трансляторе Альфа было 45 000 команд, причем, поскольку это писалось в машинных кодах, то команда фактически эквивалентна строке ассемблера, который набивает Татарин.

Уже сейчас видно, что Татарин способен сделать 2 таких транслятора в год

Оценим советских разработчиков

ДАНО:
КСП ( Количество Строк Полное ) = 45 000
Трудоемкость = 30 человек-лет
ЧРДГ ( Число Рабочих Дней в Году ) = 250

ТОГДА:
Количество строк в день КСД вычисляется как Количество строк полное поделить на Число рабочих дней в году и поделить на трудоемкость

КСД = КСП / Трудоемкость / ЧРДГ = 45 000 / 30 / 250 = 6

Т.е. если один человек пишет код, то в советских реалиях это 6 строк в день. Или три человека по 2 строки в день.

Таким образом, без сомнения, советский результат просто "позорный", если его сравнить с производительностью Татарина, которая в 400 / 6 - примерно 67 раз выше.

Очевидно что трагедия советской вычислительной техники состояла в том, что тогда и там ... не было Татарина! ( чем он искренне возмущается! )

Ибо с его производительностью в 400 строк в день ( а без посещения уроков биологии она могла бы быть минимум в два раза выше ) он бы за 3 года смог бы написать эквивалент BOS/DOS Системы 360 (с индексно-последовательными файлами) плюс ее утилиты плюс парочку трансляторов - скажем Фортран и РПГ - в придачу.

А еще через два года столица бы переехала в Нью Васюки он бы написал прикладное ПО к этому эквиваленту, оставив IBM позади, и весь мир ( по меньшей мере фирмы ICL/RCA/Siemens ) вместо клонирования Системы 360 упрашивали бы за любые деньги лицензию на ЭВМ Минск чтобы можно было запускать это ПО мирового класса, история IBM могла бы сложиться тоже совсем по-другому.

Примечание: расчеты полностью корректны и основаны на данных предоставленных самим Татариным.
 120.0.0.0120.0.0.0

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru