powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / максимум без if
25 сообщений из 98, страница 3 из 4
максимум без if
    #38813230
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВсегда удивляло это многообразие (defun ..) (def ..) (define ..).

Кстати Common-Lisp запретил переопределять max, поэтому я сделал maximum.
Не, ну в Scheme переопределить ничто не мешает похоже, но для уверенности я my везде добавил в название.
...
Рейтинг: 0 / 0
максимум без if
    #38813235
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати... Scheme написан на Scheme?
...
Рейтинг: 0 / 0
максимум без if
    #38813243
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКстати... Scheme написан на Scheme?
Никогда этого не понимал, как можно что то написать на нём же самом? Ядро ведь всё равно на чём то другом будет?
...
Рейтинг: 0 / 0
максимум без if
    #38813263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLomaytonКстати... Scheme написан на Scheme?
Никогда этого не понимал, как можно что то написать на нём же самом? Ядро ведь всё равно на чём то другом будет?
Думаю да. Самый самый первый "C" скорее всего был написан на Асм-ах.
Иначе причинно следственная цепочка была-бы похерена и на земле воцарился-бы Сотона.
А так... Кернинган и Ричи..

Другое дело што Лиспы вроде-как умеют exe-шник готовить.
...
Рейтинг: 0 / 0
максимум без if
    #38813654
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКоллеги а какова цена вопроса? Что мы хотим?

1) Оптимизировать скорость?

В этом случае нам надо искать Ассемблер для целевой конфигурации и внимательно
смотреть в нём команды, abs(x,y), sgn(x,y) или их более атомарные декомпозиции.
Далее считать такты и делать бенчмарки.
Условие задачи "без if" - это (как и всякие размотки циклов) оптимизация переходов путем сокращения количества этих самых переходов.
Довольно существенно может поднять скорость. Да и снизить тоже :)
...
Рейтинг: 0 / 0
максимум без if
    #38813655
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда для Лиспа вообще бесполезна :)
...
Рейтинг: 0 / 0
максимум без if
    #38813666
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonXDiaBLo Никогда этого не понимал, как можно что то написать на нём же самом? Ядро ведь всё равно на чём то другом будет?
Думаю да. Самый самый первый "C" скорее всего был написан на Асм-ах.
Компилятор асма тоже был на чем-то написан. Просто тогда уровень сложности был такой что можно было код написать в тетрадке, там же перевести в байт-код и потом забить в комп и запустить. Я с этого начинал. Компилировал ручкой на бумаге.
...
Рейтинг: 0 / 0
максимум без if
    #38813675
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ассемблера нет компилятора.
Есть символьные ассемблеры, позволяющие использовать более-менее человеко-читабельные мнемоники вместо кодов.
...
Рейтинг: 0 / 0
максимум без if
    #38813680
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДумаю да. Самый самый первый "C" скорее всего был написан на Асм-ах.
на подмножестве С
http://habrahabr.ru/post/180523/
...
Рейтинг: 0 / 0
максимум без if
    #38813703
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovУ ассемблера нет компилятора.
Есть символьные ассемблеры, позволяющие использовать более-менее человеко-читабельные мнемоники вместо кодов.
ИМХУ: Компилировение это не что иное как преобразование человеко-читабельного в машинно-исполняемое
...
Рейтинг: 0 / 0
максимум без if
    #38813785
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovУ ассемблера нет компилятора.
Есть символьные ассемблеры, позволяющие использовать более-менее человеко-читабельные мнемоники вместо кодов.Ошибаешься. У ассемблера компиляторы есть. Собственно говоря, без компилятора ассемблер не возможен.
Ассемблер это и есть набор мнемоник превращающий кода в человеко-читабельный текст.
...
Рейтинг: 0 / 0
максимум без if
    #38813789
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlОшибаешься. У ассемблера компиляторы есть.
Не согласен

Возможно, формулировки зависят от учебного заведения.
...
Рейтинг: 0 / 0
максимум без if
    #38813803
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилWhite OwlОшибаешься. У ассемблера компиляторы есть.
Не согласен

Возможно, формулировки зависят от учебного заведения.При чем здесь учебное заведение?
Чисто из определения ассемблера:
https://ru.wikipedia.org/wiki/Язык_ассемблера Язык ассемблера (англ. assembly language) — машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ.
Может вас смущает то что "ассемблером" называют и программу которая переводит из мнемоники в машинные кода? Но эта программа по существу и есть компилятор.

В принципе можно и вручную сделать перевод из мнемоники в кода (по существу делая ручную компиляцию). Но процесс компиляции есть всегда. Правда в этом случае компилятором будет служить человек с карандашом.
...
Рейтинг: 0 / 0
максимум без if
    #38813806
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНо эта программа по существу и есть компилятор.
я привык называть эту программу ассемблером и не называю компилятором.
Так учили.
...
Рейтинг: 0 / 0
максимум без if
    #38813821
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилWhite OwlНо эта программа по существу и есть компилятор.
я привык называть эту программу ассемблером и не называю компилятором.
Так учили.Ааа... ну да, ну да... Курица не птица, ЗАЗ 965 не автомобиль, и разные другие "не" из этой же серии :)
...
Рейтинг: 0 / 0
максимум без if
    #38813869
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ассемблер - частный случай компилятора, т.к. производит трансляцию из более высокоуровневого текстового представления кода в низкоуровневый бинарный, пригодный для запуска либо скармливания линкеру, что полностью соответствует определению компилятора.
...
Рейтинг: 0 / 0
максимум без if
    #38813894
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyАссемблер - частный случай компилятора, т.к. производит трансляцию из более высокоуровневого текстового представления кода в низкоуровневый бинарный, пригодный для запуска либо скармливания линкеру, что полностью соответствует определению компилятора.
Как его ни назови, суть останется та же самая. У вас просто спор про определения, что в принципе обычное дело. Часто читаешь книжку по какой то теме, и там несколько разных определений одного и того же. Сколько людей, столько мнений.
...
Рейтинг: 0 / 0
максимум без if
    #38813902
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlСобственно говоря, без компилятора ассемблер не возможен.debug древнего DOS содержал ассемблер.
Никаких компиляторов - достаточно прямолинейное превращение мнемоник в последовательность байт.
Ну и стандартная для (этой) программы возможность сброса участка памяти на диск, что давало com-файл.

P.S. Видел пример изощрённого bat-файла, где debug использовался, чтобы вывести строку без завершающего CRLF
...
Рейтинг: 0 / 0
максимум без if
    #38813904
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovWhite OwlСобственно говоря, без компилятора ассемблер не возможен.debug древнего DOS содержал ассемблер.
Никаких компиляторов - достаточно прямолинейное превращение мнемоник в последовательность байт.
Ну и стандартная для (этой) программы возможность сброса участка памяти на диск, что давало com-файл.

P.S. Видел пример изощрённого bat-файла, где debug использовался, чтобы вывести строку без завершающего CRLF
У меня однажды давно Винда 98 не ставилась, из-за скандиска, он на что-то ругался. Удаление скандиска не помогало. Так я сделал исполняемый файл с одной командой "ret", и заменил им скандиск. Винда поставилась, и всё было нормально :) Дебаг тот я использовал чтобы вспомнить как будет "ret" в 16-ричном коде.
...
Рейтинг: 0 / 0
максимум без if
    #38813908
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне изменяет склероз, у виндового установщика был штатный ключ, пропускающий фазу проверки диска.
...
Рейтинг: 0 / 0
максимум без if
    #38813909
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНасколько мне изменяет склероз, у виндового установщика был штатный ключ, пропускающий фазу проверки диска.
:) Может быть. Я наверное не в курсе про него был.
...
Рейтинг: 0 / 0
максимум без if
    #38813929
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне вот другое интересно. Я провёл многие часы дни и анализируя и упрощая предикаты в if.
Метод карт Карно или диаграм Вейча. Мне нравилось сворачивать сложные проверки или
оптимизировать скорость просто меняя их порядок в expression.
...
Рейтинг: 0 / 0
максимум без if
    #38813933
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне вот другое интересно. Я провёл многие часы дни и анализируя и упрощая предикаты в if.
Метод карт Карно или диаграм Вейча. Мне нравилось сворачивать сложные проверки или
оптимизировать скорость просто меняя их порядок в expression.
А мне раньше нравилось на ассемблере писать, ну это интересно конечно, но обычно для работы недостаточно быстро код пишется. Потому как перестал быть студентом, ассемблер забросил :(
...
Рейтинг: 0 / 0
максимум без if
    #38814109
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoНикогда этого не понимал, как можно что то написать на нём же самом? Ядро ведь всё равно на чём то другом будет?
Нет, не обязательно. Первую версию надо писать на чём-то другом. А вторую версию уже можно написать на первой.
...
Рейтинг: 0 / 0
максимум без if
    #38814242
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
Код: plaintext
1.
c = a<b ? b : a;


Код: plaintext
1.
c = max(a,b);


Код: plaintext
1.
2.
3.
4.
5.
6.
c=0;
while(a>0 && b>0) {
    c++;
    a--;
    b--;
}



Ну а если Си не любишь, то можно и на SQL сделать.
Код: sql
1.
select @c = case when @a<@b then @b else @a end


Код: sql
1.
select @c = max(v) from (select v=a union select b) t


Все 3 варианта хоть и без if, но скомпилируются с условным переходом.

Если нужен без jump-ов, но c cmp, то такой вариант:
http://ideone.com/aQW2D6
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include <iostream>
using namespace std;

inline int func(int a, int b) {
	int ab[2] = {a, b};
	return ab[a<b];
}


int main() {
	
	cout << func(5, 4);
	
	// your code goes here
	return 0;
}
...
Рейтинг: 0 / 0
25 сообщений из 98, страница 3 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / максимум без if
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]