LINUX.ORG.RU

Существует ли язык высокого уровня, который устойчиво быстрее C?

 ,


0

1

Возможно ли сделать язык программирования, который не будет содержать платформ-зависимых операций, но при этом позволит получить у готовой программы производительность не меньше чем у оптимально написанной программы на C?

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

Так вот, возможно ли сделать такой язык? Если да, то в каком направлении копать?

А может уже существуют такие языки, просто из-за популярности C на них мало кто пишет, поскольку всплывают проблемы совместимости с существующей базой уже готового кода?

★★★★★

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

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

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

Так в том и вопрос: «как ты научился делать то, о чём кукарекаешь»? :-)

Ну я ни о чём особо не кукарекаю, в основном о всякой примитивщине. Учиться там нечему - просто осознано уметь делать то, что умеет делать любой адепт.

Как учиться - это особенность сознания. Если есть желание понимать - оно будет, а не будет - как-то объяснить и заставить понять кого-то нужность понимания без понимания - не имеет смысла.

Нет, он скажет, дескать, зачем изобретать велосипед?.. Есть же... :-) Ещё и посмеётся :-)

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

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

Вот без этих велосипедов у меня нифига бы не взлетело, потому что готового тупо нет!!! Раз велосипед, два велосипед. И еще дофигища велосипедов на моих аккаунтах в сосфорже, гитхабе, гитлабе и битбакете.

Вот для этого и нужны большие мониторы. Много больших мониторов. Чтобы генерируемый мною жир растекался более тонкими пленочками и не мешал видеть содержимое экрана =D

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

Повторное использование кода - теория, которая часто на практике не работает

Это повод не использовать код повторно?

Зачем мне своя ОС для моего проекта? Зачем мне кем-то сделанное оборудование?

А зачем тебе свои строки/связные списки и т.д.?

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

Это твоя основная ошибка. Основная ошибка этого мира - это отсутвие учёта качества реализации

С чего ты взял, что я не учитывал качество?

Если бы мог создать вменяемые реализации - тебя бы тянуло блювать от одного упонимания этого дерьма.

От какого дерьма? Тебе хэш-таблицы не нравятся? И что предлагаешь использовать вместо них?

Ты опять же путаешь «готовое и низкопробное дермище, которое не решает никаких задач» и решение задач.

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

Значит ты ничего в поиске не понимаешь, что я могу ещё сказать.

Как это что? Ты можешь научить.

Например:

Это не имеет смысла - зачем брать говно, если за 5минут делается не говно?

Покажи, плиз.

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

Т.е. для адептов оценивается только реализация как таковая, а её качество - да насрать.

Да с чего ты взял? Всегда оценивается качество...

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

Одно другому не мешает.

Мешает. Ты не можешь создать создать из кубиков рандомную форму - это невозможно.

Вот скажи мне, почему ты не пишешь свою ОС для своего проекта?

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

Или пойдем дальше - почему ты используешь кем-то сделанное оборудование? Почему не создаешь сам?

Сделал бы, но опять же - оборудование это физические ресурсы, которыми адепт просто не обладает.

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

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

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

Если я буду ваять ПАК, которые не воздействует со средой и требует много уникально, то естественно проще и лучше запилить всё самому.

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

Зачем мне тратить время и деньги(причем чужие) на изобретение велосипеда?

Тут дело не во времени, ни в деньгах, а в том, что не сможешь.

Зачем ты считаешь чужие деньги, а время твоё никого не интересует. Деньги определяют то, сколько ты потратишь времени. Ты его уже продал - всё, нет смысла кукарекать о времени. Ты либо кукарекаешь о деньгах, либо о времени.

Пиление самому стоит не больше времени, просто у тебя нет ни умения, ни экоститемы в мире нет. Всё готовое говно в текущем мире - это кубики из которых надо строить. С чего ты взял, что у подхода «сделай сам» не может быть фреймворков и готового говна?

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

Человек создаёт, а не ваяет уже изобретённое. Автоматизированно должно быть всё, что может быть автоматизированно без уменьшения качества результата - т.е. всё то, где не нужен разум.

Почему же ты считаешь, что если мне сказали «вытачи кубик» - я буду его стругать руками? Я создам стругалку, которая стругает лучше меня. Создам я её так же из деталей, которые я вытачу так же на станках, которые сваял я, либо другие.

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

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

Мешает. Ты не можешь создать создать из кубиков рандомную форму - это невозможно.

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

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

Это повод не использовать код повторно?

Это повод не использовать повторно говнокод :-)

А зачем тебе свои строки/связные списки и т.д.?

Для решения задачи так, как я его вижу :-)

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

Это повод не использовать код повторно?

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

Т.е. переиспользуемый код состоит на 95% из кастылей, которые делают обычный код переиспользуемым.

А зачем тебе свои строки

Никаких строк не существует. Если ты это не знаешь - это твоя проблема. Они нигде не нужны.

связные списки и т.д.?

Связные списки не имеют смысла - это убогое дерьмо для школьников, применения которым не существует.

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

У меня есть память - всё. Мне ничего больше не нужно.

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

Тут дело не во времени, ни в деньгах, а в том, что не сможешь.

Смогу. Просто это неинтересно. Я этим уже занимался. Мне интереснее искать решения задач уже на другом уровне.

Пиление самому стоит не больше времени

Больше. Потому, что после того, как я запили велосипед, мне еще и задачу решать. А так я сразу могу решить задачу.

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

Почему же ты считаешь, что если мне сказали «вытачи кубик» - я буду его стругать руками? Я создам стругалку, которая стругает лучше меня. Создам я её так же из деталей, которые я вытачу так же на станках, которые сваял я, либо другие.

Вот это уже интересно. По крайней мере звучит вкусно. Можешь подробнее рассказать и примеры какие-то привести?

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

Это повод не использовать повторно говнокод :-)

Его лучше вообще не использовать. Вопрос только в критериях.

Для решения задачи так, как я его вижу

Можешь продемонстрировать на примере?

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

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

Так.

Т.е. переиспользуемый код состоит на 95% из кастылей

Почему ты считаешь, что это костыли?

Связные списки не имеют смысла

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

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

Так, становится понятнее.

Нет - у меня нет ни строк, ни списков, ни интерфейсов.

А вот тут тяжко уже... Не могу понять. Испорчен слишком годами программирования...

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

Связные списки не имеют смысла - это убогое дерьмо для школьников, применения которым не существует.

Имеют смысл в Лиспе :-)

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

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

Отсортированный массив + бинарный поиск?

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

Так что-то ты берешь готовое, что-то пилишь сам.

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

Не возможно сделать что-то при помощи дерьма, которое не приспособлено для рения конкретных задач.

То, что целесообразно пилить самому в данной конкретной задаче.

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

Давай попроще - вот у тебя есть программа и ты захотел заюзать стл из крестов. Хорошо - заюзал, но это не возможно. stl требует говноаллокатора, исключений и работает как дерьмо. С «работает как дерьмо» - на это можно закрыть глаза, а на остальное нет.

Ты можешь сказать, что «можно написать свой аллокатор», но это так же неработает, ибо api аллокатора у крестов/стл - дерьмо, которое никак не возможно использовать.

Да и вообще сам аллокатор - для нулей. Он не нужен. С исключениями то же самое. Это не говоря о том, что это раздувание кода.

Т.е. никак стл к себе запихнуть ты не можешь, даже если ты согласен жрать такое дерьмо - оно просто не интегрируемо. И так со всем.

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

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

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

И это только малая часть. Проще сделать дерьмо. И так со всеми пацанами.

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

Судя по твоим комментариям, у тебя вообще рассудка нет. Только и можешь лужи газифицировать.

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

А зачем тебе свои строки/связные списки и т.д.?

Без связных списков и/или деревьев многие задачи тупо неразрешимы!

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

anonymous
()

python наверное. Если и не устойчиво быстрее, то в среднем по палате - быстрее точно будет.

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

Почему ты считаешь, что это костыли?

Т.е. мне надо написать в 20раз больше кода для того, чтобы переиспользовать эту 1/20.

Зачем, если я могу просто написать её 20раз? Понимаешь - это имеет смысл для либ, которые юзают пацаны, сотни-тысячи пацанов. Но для твоего кода - это не имеет смысла.

Тем более это превращает твой код в дерьмо - по умолчанию.

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

Сишники - такой же продукт, как и все остальные. Хотя 95% из них - это просто пхписты, которые почему-то ваяют на сишке.

Им рассказали про списки - они их и юзают.

А вот тут тяжко уже... Не могу понять. Испорчен слишком годами программирования...

Понимаешь - строка/список/таблица - это всё интерфейсы. Хотя вы их называете структурами - они не структуры - они интерфейсы.

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

Список - это:

struct {
 T * next;
}

И всё. Я пишу его 0.5секунды.

while((node = node->next)) {} //вот - всё, от списка больше ничего не нужно. На любом интерфейсе ты напишешь столько же.

Строки имеют такой же интерфейс, как и пять, ибо это и есть память. Всё имеет такой же интерфейс.

Что ещё нужно? Хеш-массив - это T m[key(data)] - елси это не так, то у тебя не хештаблица, а дерьмо. Каждые типы и объёмы данных имеют свои нюансы с хешированием. Взде свои отловы коллизий.

Бревно - бревно так же в большинстве случаев не нужно, а когда нужно - реализуется за 5минут, ибо реализуется под конкретный датасет.

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

Что ещё нужно - ничего не нужно. Зачем мне в мой хештаблице интерфейс от твой хештаблице, когда мне нужна одна операция? И моя хештаблица работает для определённой длинны датасета и его типа.

Это я должен пойми и превратить её в крестовый хеш? Зачем мне это надо?

И так везде. Т.е. я напишу вызывая api-либ кода столько же, сколько на реализацию этого всего руками. При этом оно будет идеальным.

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

Имеют смысл в том, что не имеет смысла - сильно.

Не все пользуются nano или Geany :-) Есть ещё мой Emacs, из которого я делаю инструмент конкретно под себя :-)

Не более, чем вин.

Не более, чем другой подход к написанию, представлению, генерации кода :-)

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

Отсортированный массив + бинарный поиск?

И тут тоже не нужны велосипеды. Все есть в стандартной библиотеке.

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

Без связных списков и/или деревьев многие задачи тупо неразрешимы!

Думаю, что там ключевой акцент был на «свои». Почему ты не берешь готовые?

Я тоже себе навелосипедил

Зачем?

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

Т.е. мне надо написать в 20раз больше кода для того, чтобы переиспользовать эту 1/20

Но ведь это не так.

Зачем, если я могу просто написать её 20раз?

Скопипастишь? А в случае ошибки будешь в 100500 местах править...

Тем более это превращает твой код в дерьмо - по умолчанию.

Почему?

Список - это:
И всё. Я пишу его 0.5секунды.

Это не список. Списком это станет, когда ты напишешь код добавления/удаления элементов и т.п.

всё, от списка больше ничего не нужно

Как ты собрался обходить список, в который ничего не положил? Как ты собрался удалять из этого списка?

Что ещё нужно? Хеш-массив - это T m[key(data)] - елси это не так, то у тебя не хештаблица, а дерьмо.

Это так. Но это не вся правда. Тебе еще нужно продумать как ты будешь расширять эту таблицу(и будешь ли), нужно выбрать хэш-функцию и т.п.

В общем, я тоже не понимаю, зачем это все писать самому, когда это уже написано и отлажено?

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

когда лучше я буду оставаться в пределах своего кода, в котором разбираюсь гораздо лучше, ибо я - автор»? :-)

Как быть проектам, которые создаются силами не одного человека?

Меня устраивает...
Меня устраивает...

И чем ты лучше тех, кто «перекладывает кирпичики»?

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

Как быть проектам, которые создаются силами не одного человека?

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

И чем ты лучше тех, кто «перекладывает кирпичики»?

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

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

плевать на

плевать на

плевать на

Ты верблюд^Wптица высокого полета.

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

python

в среднем по палате - быстрее точно будет

Этому треду остро не хватало сумасшедших.

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

Царь.

Но ведь это не так.

Это так.

Скопипастишь? А в случае ошибки будешь в 100500 местах править...

Там не бывает ошибки. Если там есть ошибка - она в днк и это уже не код, а говно.

Почему?

Я уже выше описывал это сотни раз. Перечитай.

Это не список. Списком это станет, когда ты напишешь код добавления/удаления элементов и т.п.

Это список, я так же писал о вашей фатальной ошибке. И опять же - ты её проявляешь путая интерфейс и «структуру данных».

С какого хрена ты взял, что мне нужно «и т.п.», если оно мне не нужно, не?

Как ты собрался обходить список, в который ничего не положил?

Что значит положил? prev->next = {cur, ....}; --так?

Тебе еще нужно продумать как ты будешь расширять эту таблицу(и будешь ли)

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

нужно выбрать хэш-функцию и т.п.

Готовое дерьмо это не выбирает за меня, тогда в чём вопрос? Я там разве писал, что этого делать не надо? Я как-раз таки написал, что это делать надо.

В общем, я тоже не понимаю, зачем это все писать самому, когда это уже написано и отлажено?

Там нечего отлаживать - отлаживает готовое дерьмо не потому, что там лажа в самом m[hash(data)], а в обёртках, динамике и прочей ненужной дерьме.

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

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

В общем, я тоже не понимаю, зачем это все писать самому, когда это уже написано и отлажено?

Я вот тоже не понимаю, зачем нужен велосипед, когда можно иметь мотоцикл? :-) Постой, зачем мотоцикл, когда можно иметь легковой автомобиль? :-) Он универсальнее, на нём можно ездить далеко и быстро, в нём можно спать :-) Стоп, зачем лековой автомобиль, когда можно взять готовый внедорожник? :-) Ведь он ещё универсальнее, на нём можно по бездорожью на рыбалку ездить, если что :-) О, так а нафиг тогда просто внедорожник, когда можно взять готовый грузовой вездеход, который применим в гораздо большем количестве ситуаций и заменяет велосипед, мотоцикл, легковуху и внедорожник :-) Так что зачем мне тот велосипед, сразу уж технику брать на все случаи жизни :-) И ничего, что он жрёт топливо вёдрами, испуская тонны Co2, едет 60 км/ч и выглядит уродливо (брутально ведь!) :-) Зато как универсально! :-) Вывод - велосипеды не нужны :-)

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

Почему ты не берешь готовые?

А что, есть? В glib они жутко перегруженные, мне такое не надо.

Зачем?

Готовых нет.

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

Другой анон, который цраь

Выкатывай задачу - я тебя обоссу вместе с твоими стандартными. Естественно из реального мира.

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

Мне С за глаза хватает

Ну как же хватает, когда нет готовых вещей и ты вынужден пилить велосипеды?

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

Покажи свои велосипеды, которые быстрее стандартных.

Ты хотел сказать «универсальных» :-) Видишь, ты даже не понял сути :-) Для тех кто в танке, а не на гусеничном грузовом вездеходе :-) *Почти* все готовые решения, которые выкладываются в паблик, делаются не столько ради всеобщей пользы, сколько с целью создания секты адептов и последователей :-) То, что авторы универсальных фреймворков/библиотек хотят найти своё место под солнцем не является чем-то плохим или удивительным :-) Плохим и удивительным является апатия к созданию оптимальных компонент для решения конкретной задачи самостоятельно, как и нежелание высовывать носа из своего болота :-)

anonymous
()

Мне кажется что от конпилятора и таргетируемых архитектур будет многое зависеть в плане быстродействия. По поводу выше уровнем и быстрее C, это мне кажется фантастикой :)

trueshell ★★★★★
()
Ответ на: Другой анон, который цраь от anonymous

Выкатывай задачу - я тебя обоссу вместе с твоими стандартными. Естественно из реального мира.

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

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

По поводу выше уровнем и быстрее C, это мне кажется фантастикой :)

Отсортируй массив целых числе на С.

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

Вытащить из входа все

Что за вход?

что соответствует регулярке

Для даунов. Выкатывая какой именно регулярки, которая должна соответствовать реальности.

посчитать число вхождений для каждой уникальной строки

Вхождений во что?

Ок?

Твой высер дерьмо. Я тебе сказал задачу из реального мира. Именно задачу, а не неводомую херню.

Я тебя могу спросить «зачем это надо» и ты обделаешься, а такого с реальной задачей быть не должно.

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

Поэтому попытайся ещё раз.

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

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

Я понятия не имею что для тебя «решение с использование стандартных средств» :-)

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

Отсортируй массив целых числе на С.

десятичных? :)

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

Зато не нужно ломать голову над синтаксисом ЯП. Я не понимаю ООП и не собираюсь понимать!

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

Смотри сюда. Из «стандартных» решений есть лептоника. Ту же самую задачу выделения 4-х и 8-ми связных областей она решает как минимум в 5 раз медленнее!!!

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