LINUX.ORG.RU

Ответ на: комментарий от X512

Недавно писал дизассемблер RISC-V, там было такое:

	PROCEDURE (dec: Decoder) Decode* (h: WorkDecoders.Handler);
		VAR
			newLine, keepPcRelReg: BOOLEAN;
			i, opLen: INTEGER;
			pc0: INTEGER;
			op: ARRAY 12 OF SHORTINT;
			op2: INTEGER;

		PROCEDURE Op1;
		(* ... *)
		PROCEDURE Op2;
		(* ... *)

	BEGIN
		newLine := FALSE;
		keepPcRelReg := FALSE;
		pc0 := h.adr;
		ReadSInt(op[0]);
		IF BITS(op[0] MOD 10000H) * {0..6} = {0..6} THEN
			opLen := 5 + op[0] DIV ASH(1, 12) MOD ASH(1, 3);
		ELSIF BITS(op[0] MOD 10000H) * {0..6} = {0..5} THEN
			opLen := 4;
		ELSIF BITS(op[0] MOD 10000H) * {0..5} = {0..4} THEN
			opLen := 3;
		ELSIF BITS(op[0] MOD 10000H) * {0..1} = {0..1} THEN
			opLen := 2;
		ELSE
			opLen := 1;
		END;
		i := 1; WHILE i < opLen DO ReadSInt(op[i]); INC(i) END;
		i := 0; WHILE i < MIN(opLen, 2) DO
			WriteHex(op[i] MOD 10000H, 4); h.Put(" ");
		INC(i) END;
		h.Put(09X);
		CASE opLen OF
		| 1: Op1;
		| 2: Op2;
		ELSE WriteUndef END;
		IF opLen > 2 THEN
			h.Put(0DX); h.Put(09X);
			i := 2; WHILE i < opLen DO
				IF (i # 2) & (i MOD 2 = 0) THEN h.Put(09X); h.Put(0DX); h.Put(09X) END;
				WriteHex(op[i] MOD 10000H, 4); h.Put(" ");
			INC(i) END;
			h.Put(09X);
		END;
		IF newLine THEN h.Put(0DX) END;
		IF ~keepPcRelReg THEN pcRelReg := -1 END;
	END Decode;
X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 2)
Ответ на: комментарий от GP

Ага. Только этих твоих «поздних версий Ада» нет в MIL-STD-1815 (ада 83) и равенскаре... потому что навеяны плюсами, да? :)

slackwarrior ★★★★★
()
Ответ на: комментарий от X512

Э… А тебе никогда старшие не говорили про то, что проводник - твой основной инструмент?

Т.е. если ты будешь на площадке у клиента, то тебе будет ЗАПРЕЩЕНО ставить туда свое ПО типа Far Manager и прочее.

GP
()
Ответ на: комментарий от GP

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

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от GP

А тебе никогда старшие не говорили про то, что проводник - твой основной инструмент?

Бежать надо от таких старших.

Т.е. если ты будешь на площадке у клиента, то тебе будет ЗАПРЕЩЕНО ставить туда свое ПО типа Far Manager и прочее.

Оно и без установки запускается. Да и обычной консоли достаточно.

X512 ★★★★★
()
Ответ на: комментарий от GP

Т.е. если ты будешь на площадке у клиента, то тебе будет ЗАПРЕЩЕНО ставить туда свое ПО типа Far Manager и прочее.

Господи, какой бред несешь...

Какой клиент, какие требования, кто кому платит, чем занимаешься у него?

Если что-то серьезно не работает у клиента и почему-то надо в этом прямо у него на машине разобраться, то софт будет ставиться любой, какой нужен для эффективной работы. От FAR до отладчиков. И даже свои платы будут втыкаться в клиентскую машину, если надо.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 2)
Ответ на: комментарий от praseodim

Какой клиент, какие требования, кто кому платит, чем занимаешься у него?

Может быть он на секретном объекте военных работает.

X512 ★★★★★
()
Ответ на: комментарий от X512

У него просто дома насрано — сортир он помыть не успевает за собой, т.к. в интернете кто-то неправ :) В общем типичные проекции мелкого засранца :)

slackwarrior ★★★★★
()
Ответ на: комментарий от X512

Может быть он на секретном объекте военных работает.

Может и так, но вообще-то в таком случае (да и не в таком тоже) обычно предусмотрена опция вывода кучи диагностической информации, с которой потом разбираются у себя. Если же и ее нельзя вывести и унести, то ну случаи они разные бывают, конечно. Но зачем же обобщать.

praseodim ★★★★★
()
Ответ на: комментарий от GP

а дюже умные идут мыть полы туалетов

Не-а, вылазь из скорлупы идиотских инструкций.

И все-таки, чем отличается «установка FAR» от «установки студенческих программ»?

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

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

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim

Софт у клиента ставится тот, который оговорен в договоре.

Если ты сотрудник фирмы, распространяющий ERP систему, то в договоре стоит только ERP система.

Копировать на комп ты будешь проводником, а не Far-ом и Total-ом.

GP
()
Ответ на: комментарий от saahriktu

Чтобы потом не искать объявления переменных по всему коду

Не понимаю, зачем искать объявления по всему коду)

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

Найти объявление переменной и пофиксить если что-то не так удобнее если все переменные объявлены в одном месте.

Go to definition есть во всех нормальных IDE и редакторах кода. К виму тоже можно прикрутить. Ну и лучшие практики никто не отменял - переменные объявляются и инициализируются или в начале «синтаксического» блока (который фигурными скобками выделен в сишном коде), или в начале «семантического» блока, который выделен пустыми строками в коде.

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

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

В крайнем случае, если уж очень хочется, можно объявлять все переменные в начале процедуры в той же сишке или плюсах)) Только почему-то никто так не делает. Стесняются, наверное.

Fizzika ★★
()
Последнее исправление: Fizzika (всего исправлений: 1)
Ответ на: комментарий от GP

Копировать на комп ты будешь проводником

В организации скорее всего будут вообще через сеть ставить сразу на все компьютеры, а не бегать за каждым компьютером и копировать проводником.

X512 ★★★★★
()
Ответ на: комментарий от GP

Если ты сотрудник фирмы, распространяющий ERP систему, то в договоре стоит только ERP система.

Копировать на комп ты будешь проводником, а не Far-ом и Total-ом.

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

Плюс обучение сотрудников предприятия. На месте или с командировками в обучающие центры.

На этом фоне там вообще никого не волнует как этот erp ставят. Вернее есть внутренние инструкции, но это вообще настолько перпендикулярно процессу, что смешно даже рассуждать на тему far и проводника.

Ты видимо думаешь, что это админ с флешкой бегает по компам и что-то ставит? Ну-ну, уровень понятен.

Но даже админ с флешкой. Одно дело кликнуть в проводнике и поставить, другое - разбираться с проблемами. Если почему-то с ней надо разбираться локально, то это в любом случае потребует дополнительного инструментария. FAR или не FAR, но стандартные средства винды крайне убогие в этом плане.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от X512

В организации скорее всего будут вообще через сеть ставить сразу на все компьютеры, а не бегать за каждым компьютером и копировать проводником.

It depends. По разным причинам не все через сеть хорошо ставится. Но по-любому там процесс на фоне которого вопрос вспомогательного ПО просто не стоит. Если что и удалить можно.

Обычно скрипты установочные выполнются. Локально или таки через сеть.

praseodim ★★★★★
()
Ответ на: комментарий от GP

Чо, добровольно таки помыл сортир за собой? Или когда мамка леща дала :)

slackwarrior ★★★★★
()
Ответ на: комментарий от saahriktu

Меня учили, что только так и нужно. Чтобы потом не искать объявления переменных по всему коду. Найти объявление переменной и пофиксить если что-то не так удобнее если все переменные объявлены в одном месте.

Это уже давно неактуально и неправильно. У переменных появились области видимости, их память может переиспользоваться умными компиляторами. Актуальная рекомендация - объявлять переменные рядом с теми местами, где они впервые используются. Если функция/метод - не простыня на 100500 строк (что само по себе неправильно), найти объявление переменной ничуть не сложнее.

hummer
()
Последнее исправление: hummer (всего исправлений: 1)
Ответ на: комментарий от hummer

области видимости

Просто, как я уже написал, большой код нужно разбивать на процедуры со своими переменными.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от GP

Программы уровня «Hello World» все запускали из IDE Турбо Паскаля.

А IDE по умолчанию компилировала в память, без порождения .EXE-файла. Запускали такие программы нажатием Ctrl+F9, а консоль можно было показать после завершния программы нажатием Alt+F5.

Компилирование в .EXE-файл для программ уровня «Hello World» не нужно вообще (это надо было специально настраивать).

И да, в Windows 95 у ярлыка консольного приложения была галочка «Close on Exit», которую можно было снять, чтобы консоль не закрывалась автоматически.

Так что про такое поведение с 1992 года тоже мимо.

bigbit ★★★★★
()
Последнее исправление: bigbit (всего исправлений: 1)
Ответ на: комментарий от X512

Недавно писал дизассемблер RISC-V,

А можно посмотреть исходные коды дизассемблера? На гитхабе только бинарники с непонятным мне расширением

Fizzika ★★
()
Ответ на: комментарий от GP

cmd есть, а если он не может им пользоваться, то это уже его проблемы.

peregrine ★★★★★
()
Ответ на: комментарий от GP

Потому что за это платят больше, а работать надо меньше, чем с идиотами идиотии обучать идиотов.

peregrine ★★★★★
()
Ответ на: комментарий от hummer

Не чушь, и это очень легко проверить:

  1. Cкачай где-нибудь 2 файла: TURBO.EXE и TURBO.TPL.
  2. Запусти TURBO.EXE и увидишь, что в меню Compile стоит «Destination: Memory». Это и есть компиляция в память. Для того, чтобы он порождал .EXE-файл, надо ручками выставлять «Destination: Disk».
bigbit ★★★★★
()
Ответ на: комментарий от X512

Зря он так. Дельфи был неплох для своего времени. Просто с развитием сети концепция ушла от все-в-1 комбайнов в микросервисы

upcFrost ★★★★★
()
Ответ на: комментарий от Zhbert

В те времена, когда все писали на трубопаскале, результатом компиляции был файл PROGRAM.EXE. А запускали его, как ты понимаешь, отнюдь не из терминала, а двойным кликом мыши

Какой нафиг мышки лол. Ты где на 386 мышку видел?

upcFrost ★★★★★
()
Ответ на: комментарий от X512

У меня при обучении возникал вопрос зачем писать имя программы если оно нигде не используется.

В cmake тоже есть project(…).

seiken ★★★★★
()

Плохо так думать о живом человеке, но мне до этой новости почему-то казалось, что Вирт помер где-то в начале 90х.

Вот цитата из википедии про него:

Вирт часто критикует «американский подход» к разработке средств программирования, в котором маркетинговые соображения превалируют над требованиями математической стройности и гарантированной надёжности, и каждое новое модное поветрие сопровождается некритичным внесением в языки программирования новых синтаксических элементов. Это приводит к неправильной оценке роли некоторых идей и, в конечном итоге, к неправильной расстановке приоритетов в разработке ПО. В частности, говоря об ООП, Вирт неоднократно отмечал, что оно является достаточно тривиальным расширением того же структурного подхода, сдобренным новой терминологией, и вряд ли может претендовать на звание «революционной методологии программирования».

seiken ★★★★★
()
Ответ на: комментарий от unstable-case

В Turbo/Free Pascal – нет, там не учитывается регистр. Можно BEGIN, begin, bEgIn и т.д. Справедливо и для, например, идентификаторов.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от Siborgium

с апперкейсом читаемость лучше.

вот бы IDE автоматом апперкейсила ключевые слова, было бы удобно

интересно есть ли такая фича?

unstable-case
()
Ответ на: комментарий от bigbit

И да, в Windows 95 у ярлыка консольного приложения была галочка «Close on Exit», которую можно было снять, чтобы консоль не закрывалась автоматически.

Точно, забыл совсем. Можно ж было галку поставить, тогда окно оставалось.

Zhbert ★★★★★
()
Ответ на: комментарий от upcFrost

Зря он так. Дельфи был неплох для своего времени. Просто с развитием сети концепция ушла от все-в-1 комбайнов в микросервисы

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

Zhbert ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.