Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параллельное программирование на Си 
V
    Опции темы
boostcoder
Дата 23.6.2012, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



жуть, насколько все не лаконично  smile 
Код

int Semaphore::getLock(thread **obj, int *count)
{
   return (check(&obj) == -1 && *count >= MAX_RETRIES)
      ? -1
      : (++(*count), 0)
   ;
}
int Semaphore::ReleaseLock(thread **obj)
{
    return (check(&obj) == -1)
      ? -1
      : (--(*count), 0)
   ;
}

PM WWW   Вверх
magesi
  Дата 23.6.2012, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 20.5.2012

Репутация: -4
Всего: -4



Цитата(boostcoder @ 23.6.2012,  18:26)
жуть, насколько все не лаконично  smile 
Код

int Semaphore::getLock(thread **obj, int *count)
{
   return (check(&obj) == -1 && *count >= MAX_RETRIES)
      ? -1
      : (++(*count), 0)
   ;
}
int Semaphore::ReleaseLock(thread **obj)
{
    return (check(&obj) == -1)
      ? -1
      : (--(*count), 0)
   ;
}

И что ты тернарным оператором меня дразнишь?  smile  эти понты уже в прошлом, отладка с тернарным оператором крайне неудобна, да и компилятор все равно порежет код, как ему надо и приведет в итоге к тому же, что если бы было бы просто if-else с фигурными { }  smile я чисто для удобств при отладке отказался от таких понтов )

PS
Если тебе неймется лаконичная семантика, то вообще садись за Lisp или другую ф-циональщину, код , как произведение Рембрандта будет выглядеть, только это будет равносильно, как кататься на феррари по деревне ) 

Это сообщение отредактировал(а) magesi - 23.6.2012, 18:42
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
И что ты тернарным оператором меня дразнишь?    эти понты уже в прошлом

откуда столько пафоса? (плюющий)

Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
компилятор все равно порежет код

код пишется для людей, а не для компилятора.
и это ты где-то выше говорил о плохом качестве кода GNU проектов? глядя на "это", хочется сказать только одно: "чья бы корова мычала?" ©

Цитата(magesi @  23.6.2012,  18:28 Найти цитируемый пост)
я чисто для удобств при отладке отказался от таких понтов

т.е. написал этот псевдокод, ты собрался его отлаживать? smile 
PM WWW   Вверх
magesi
  Дата 23.6.2012, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 20.5.2012

Репутация: -4
Всего: -4



Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
код пишется для людей, а не для компилятора.

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

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
и это ты где-то выше говорил о плохом качестве кода GNU проектов? глядя на "это", хочется сказать только одно: "чья бы корова мычала?" ©

ты издеваешься?  smile я , как настоящий гнушник щя на коленке написал код , чтобы объяснить девушке, как лучше

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

я в свое время и лямбдами злородствовал в своем коде, знаешь что доносилось только из отделов? ) ( один только крик "лямбда-*уямба" чего стоило услышать на всю фирму ))) )

и нечего Путина цитировать, не к месту  smile 

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
т.е. написал этот псевдокод, ты собрался его отлаживать? 

думаю, что придется с такими темпами, плюс еще код переписывать ) еще учитывая , что у нее простой Си, а не СИ++

Цитата(boostcoder @  23.6.2012,  18:33 Найти цитируемый пост)
откуда столько пафоса? (плюющий)

исчо кому плевать надо ) вроде не я тернарый юзал для лаконичности программы

Добавлено @ 18:49
boostcoder, ты вроде лакончичность хотел, лови феррари ( реализация семафора ) на Лиспе  smile 
Код

(define (make-semaphore max) 
  (let ((count 0) 
        (cell (list false))) 
    (define (increment) 
      (set! count (+ count 1))) 
    (define (decrement) 
      (set! count (- count 1))) 
    (define (has-room?) (> max count)) 
    (define (the-semaphore m) 
      (cond ((eq? m 'acquire) 
             (if (has-room?) 
                 (increment) 
                 (if (test-and-set! cell) (the-semaphore 'acquire)))) 
            ((eq? m 'release) 
             (decrement) 
             (if (has-room?) (clear! cell))))) 
    the-semaphore)) 
 
(define (clear! cell) 
  (set-car! cell false)) 
 
(define (test-and-set! cell) 
  (if (car cell) 
      true 
      (begin (set-car! cell true) 
             false))) 


Ну, как лаконично?  smile 
Под это дуру бы дебаггер написать бы, замучаешься только даже с хвостовыми рекурсиями и замыканиями в коде )

PS
Кстати, это еще одна причина почему я перестал юзать всякие функторы ( лямбды и др. ф-циональные объекты ), тернарные операторы и прочее в императивных языках, т.к. смотрится нелепо немного... неймется, лаконичности, садисть за: Lisp, Haskell, Prolog, Erlang, F# и пиши лаконично smile можешь хоть часть проекта на ф-ционльшине написать, др. часть на императиве....

Ф-циональные штучки в императиве, это равносильно, что бомж оденет браслет Версачи...  smile 
посему, если хочется повыпендриваться с всякими функторами, кэррированием, замыканием и прочим, садись уж сразу за true ф-циональные ЯПы, а не частично... смотрися нелепо просто....

да и в С++ 0х ( 11 ) не привлек своими лямбдами и ф-циональной стороной, все равно до всех правил, которые есть в том же Haskell - далеко... скорее смотрится, как то , что есть такая возможность и не более... учитывая все аспекты и возможности того же Haskell 

Это сообщение отредактировал(а) magesi - 23.6.2012, 21:28
PM MAIL   Вверх
math64
Дата 25.6.2012, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Чтобы писать под Windows95, нужно минимум Borland C++ 4.5 (из компиляторов Borland).
Но вероятно, нужно писать под DOS, поскольку нужно переводить LPT в режим передачи в обоих направлениях, а в Windows95 все стандартные драйверы LPT передают данные только от компьютера к принтеру (обратно идут только сигналы типа конца бумаги)
Как управлять каналами - нужно смотреть документацию на модем, и скорее всего этот модем то же допотопный или даже самодельный, так что в инете на него документацию не найти.
PM   Вверх
xvr
Дата 25.6.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(math64 @  25.6.2012,  08:11 Найти цитируемый пост)
Как управлять каналами - нужно смотреть документацию на модем, и скорее всего этот модем то же допотопный или даже самодельный, так что в инете на него документацию не найти. 

Вот именно! С этого и надо начинать - с 3х канального модема на LPT (я даже не берусь себе представить, что это за монстр такой)!

А то уже девушку загрузили по полной - и семафоры и ring0 в ход пошли  smile 

PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(magesi @ 23.6.2012,  16:42)
Под *nix много, что понимается, даже такая экзотика, как Plan9, где нет рутов...

Не, Plan 9 не понимается, AFAIK.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(magesi @ 23.6.2012,  17:09)
а вера при чем тут? что из того, что я перечислил, не совпадает? что они стали теперь даже данные хранить в нормальных структурах данных? Выбирая примитивные бинарные деревья, и не выбирая нормальные структуры данных для той или иной операции

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

возьми исходники FireFox , аж в комментах написано, что через g++ компилиться, код выглядит, как чисто сишный ( причем и для чистого си - плохой ), много goto ( причем с goto это болезнь какая-то у практически всех GNU проектов любого уровня сложности ), много где указатели в виде типа возвр. описаны ( за что можно смело насиловать ), в качестве алгоритма сортиворки merge sort ( слиянием ), а почему не Хоара ( quick sort ), это нормально? И такое безобразие в GNUшных проектах практически везде... Будет это ОС, браузер, интепретатор, редактор 3Д без разницы... Везде один раздолбайский стиль проектов, как будто бы писали на коленках и на скорости

стиль программирования какой там во многих проектах? да за такой, код в конторах руки оторвут

Попробуй посмотреть исходники NetBSD, говорят, там неплохой код.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
magesi
Дата 25.6.2012, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 20.5.2012

Репутация: -4
Всего: -4



Цитата(k0rvin @  25.6.2012,  13:44 Найти цитируемый пост)
Не, Plan 9 не понимается, AFAIK. 

На каком основании?


Цитата(k0rvin @  25.6.2012,  14:04 Найти цитируемый пост)
Попробуй посмотреть исходники NetBSD, говорят, там неплохой код. 

Посмотрю на досуге именно NetBSD
PM MAIL   Вверх
k0rvin
Дата 25.6.2012, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(magesi @ 25.6.2012,  16:45)
На каком основании?

На том, что она имеет мало общего с оригинальной UNIX и даже не является POSIX-совместимой, зато отличий предостаточно и они довольно значимы. Хотя там есть эмуляция POSIX API и X11, но она весьма проста и позиционируется лишь как «крайняя мера» и весь софт рекомендуется переписывать заново в соответствии с идеологией и архитектурой системы.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.