Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 07:09   #121
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
зачем мне этот функционал если таковой уже предоставляется системой через API
Я боюсь Вас огорчить, но Мелкософт в дальнейшем планирует отказаться от WinApi в текущем виде. В частности для построения окон будет использоваться непосредственно ДиректИкс, есть и другие фишки, в результате которых текущий Апи станет неработоспособный.
Цитата:
Это кажется простым в случае с локальным объектом. В случае иерархии объектов (хуже, если там есть 2 объекта, которые ссылаются друг на друга) это уже не так легко и требует достаточного объема вычислительных ресурсов, чтобы со всем этим разобраться. Нет чёткой границы, куда можно воткнуть проверку на ненужность объекта.
Не всегда. Можно отслеживать по операторным скобкам. И перед закрывающей } вставлять делете для объекта/объектов (если нет его упоминания далее по тексту) непосредственно перед компиляцией. Вариантов много, нужно более тщательное изучение вопроса.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 08.12.2011 в 07:41.
Utkin вне форума Ответить с цитированием
Старый 08.12.2011, 08:17   #122
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Не знаю было или нет. В общем скажу так, занесло меня (собственно уже ровно год как не писал) обратно в круги (ада) С++. Скажу я вам. Для вашего языка 100% надо STL поддежрка + lamda это вещь. Сделайте язык функционального вида но с обратной совместимостью и будет вещь. Честно, говоря, сами меня задели с вашей идей, если запал не поутихнет то может возьмусь да свояю что нибудь ради фана.

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

И да, абстракция, абстракция и еще много раз... к тому, что даст слабую привязку к платформе. Что круто, и может если зайдете далеко, то можно будет просто на уровне базы и компилятора формировать код для другой платформы. Ну думаю поняли ради прикола может и сам займусь таким делом.
BOBAH13 вне форума Ответить с цитированием
Старый 08.12.2011, 09:54   #123
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
C++ не использует свой менеджер кучи. Он использует те самые Heap*** Virtual***, Free*** и т.д., просто скрывает их за операторами new/delete, что вполне логично, и даже необходимо для платформонезависимой разработки.
я сам лично смотрел в отладчике ассемблерный код который вызывает оператор new (в VC++6 и VC++ 2005), нет там этого? есть разве что Virtual***, которая вызываются в редких случаях, когда не хватает памяти в текущем буфере.
rpy3uH вне форума Ответить с цитированием
Старый 08.12.2011, 11:55   #124
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

rpy3uH
Цитата:
не пофиг. это очень важно особенно в системном программировании
С++ и системное программирование? Ты что то делаешь странное.

Цитата:
Мне нужно что-то промежуточное между C++ и ассемблером, чтобы написав какой-либо оператор/функцию я знал что она вызовет и что она будет делать.
Язык Forth смотрел? Он как бы низкоуровневый и как бы высокоуровневый одновременно. Как бы скриптовый и как бы компилируемый. И ещё он ассемблер с замашками Йоды.
the_deer_one вне форума Ответить с цитированием
Старый 08.12.2011, 12:11   #125
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
С++ и системное программирование? Ты что то делаешь странное.
ничего странного. и не надо трололо

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Язык Forth смотрел? Он как бы низкоуровневый и как бы высокоуровневый одновременно. Как бы скриптовый и как бы компилируемый. И ещё он ассемблер с замашками Йоды.
ересь какая-то. ещё раз повторяю: мне не нужна экзотика мне нужен нормальный язык

а вообще я изначально не в тему начал тут флудить, ибо обсуждается здесь высокоуровневый язык

Последний раз редактировалось rpy3uH; 08.12.2011 в 12:14.
rpy3uH вне форума Ответить с цитированием
Старый 08.12.2011, 13:02   #126
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

rpy3uH
Цитата:
ничего странного. и не надо трололо
Ок. Больше никакого сомнения к идее писать дрова на с++. Действительно, ну не на си же их писать.
the_deer_one вне форума Ответить с цитированием
Старый 08.12.2011, 14:05   #127
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Ок. Больше никакого сомнения к идее писать дрова на с++.
речь идёт не только про дрова
rpy3uH вне форума Ответить с цитированием
Старый 08.12.2011, 14:25   #128
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
мы говорим про разные языки. да, нужны высокоуровневые языки типа C# руби или как там их. таковых языков куча, а вот хорошего низкоуровневого языка нет. С++, да, нормально, но он полностью поражён различными раковыми опухолями
А как же чистая Сишка? Она, в отличии от С++, не имеет ничего лишнего. Вы можете полностью контролировать генерацию кода, например, указывая или не указывая спецификатор restrict перед аргументом функции (но и ответственность тоже полностью лежит на вас).

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
с одной стороны хотелось бы добавить это в ЯП. но помоему это выйдет каша тогда.
либо же делать что-то вроде отключаемого сборщика к примеру.

хотя вообще то что говорит Грузин, по сути в С++ идет так:
Код:
Class* obj;//обьявили где захотели.
...
obj=new Class;//создали.
...
delete Class;//удалили, когда захотели.
но тогда в ЯП(компиляторе) для такого режима надо все равно следить за памятью, но тогда уж не дописывать авто-освобождение памяти, а лишь вывести предупреждение
Ну почему вы все опираетесь на эти древние модели управления памятью - ручное управление, сборка мусора? Никто не знает про парадигму RAII. Можно вручную ограничить облась, где ресурс используется, тогда он будет освобождён строго по выходу из блока:
Код:
let
    f = File("input.txt")
in
{
    // Только здесь можно использовать объект f
} // Здесь файл закроется
Тут и никакого ручного управления памятью, и освобождение ресурса в определённое время (в отличие от сборки мусора, где освободится неизвестно когда)

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
опять сначала.
а если вот так
Код:
obj= (Class*)HeapAlloc(*,*,sizeof(Class));//создали
Как теперь вызвать конструктор????

C++ он использует свой менеджер кучи, в то время как этот менеджер уже есть и он предоставляется самой системой функциями Heapxxx
Мне не нужны функции new и delete!!! зачем мне этот функционал если таковой уже предоставляется системой через API
Вот программируют люди на С++, а языка-то не знают. new - оператор, выделяющий память и вызывающий конструктор. Этот оператор можно переопределить в классе, и даже заставить его принимать в качестве параметра указатель на область памяти, где мы хотим разместить объект:
Код:
class Ololo
{
    Ololo();
    Ololo* operator new(size_t, void*);
};

// ...

int main()
{
    void* mem_ptr = malloc(sizeof(Ololo));
    Ololo* lol = new(mem_ptr) Ololo();
Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
myclass *obj; // описываем переменную
malloc(obj);  // выделяем память
obj->myclass(); // вызов конструктора
...
obj->~myclass(); // вызов деструктора
realloc(obj); // очистка памяти
malloc(obj)???????!!!!!!!!! realloc(obj)?????????????!!!!!!!!!! !!! Ну это вообще пушка!
Код:
obj = (myclass*)malloc(sizeof(myclass));
// ...
free(obj);
Забыть, как выделяется и освобождается память в языке?! Жесть...

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
Мне нужен хороший язык для низкоуровневой разработки, С++ подходит, но в нём очень много рака, который мешает и просто напросто не нужен. Всякие сборщики мусора и прочие плюшки, они хороши, да, не отрицаю, но только не в системной разработке, где важна скорость и компактность кода
Но в С++ нет сборщика мусора. Только ручное управление памятью, только хардкор!
А вообще я уже говорил, что для ваших целей есть чистый Си
anyx вне форума Ответить с цитированием
Старый 08.12.2011, 14:46   #129
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от anyx Посмотреть сообщение
Но в С++ нет сборщика мусора. Только ручное управление памятью, только хардкор!
А вообще я уже говорил, что для ваших целей есть чистый Си
всё, закрыли тему. здесь обсуждается совсем другой язык и совсем для других целей. зря я вообще начал тут флудить

Последний раз редактировалось rpy3uH; 08.12.2011 в 14:54.
rpy3uH вне форума Ответить с цитированием
Старый 08.12.2011, 14:54   #130
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Никто не знает про парадигму RAII.
знаю но как то не подумал.
Цитата:
(в отличие от сборки мусора, где освободится неизвестно когда)
известно причем точно известно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли подобный текст перевести на человеческий язык? alexxx777 Помощь студентам 0 24.05.2010 19:56
Как создать вид подобный SolidWorks. KemanSR Общие вопросы C/C++ 6 04.05.2010 21:30
Добавить модуль в phpnuke-подобный движок Able2Know Фриланс 3 23.04.2010 16:29
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55