OSDev

для всех
Текущее время: 28 мар 2024, 21:56

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 285 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29  След.
Автор Сообщение
СообщениеДобавлено: 19 фев 2015, 22:08 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Юрий писал(а):
Конечно, это решается, и решается очень просто. Но возникает вопрос: а должны ли мы так делать? Разве конструкция char x[] = "*/"; в чём-то неправильна?

Да всё правильно. Речь о том, что подобные ситуации должны иметь какое-то решение. Я предложил совершенно нормальное решение. Если у вас есть альтернативный вариант, - с удовольствием выслушаю.

Юрий писал(а):
Или в угоду возможности закомментривать код мы должны этот код править?

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

Юрий писал(а):
Да нет, мы должны иметь возможность закомментировать любой код.

...включая код, 1) уже содержащий комментарии и 2) строки, в которых может встретиться произвольная последовательность символов. Первый пункт решается вложенными комментариями. Второй пункт решается маскированием. Других способов я не вижу.

Юрий писал(а):
Но Сишные комментарии не могут быть вложенными по определению.

По какому определению? Стандарт, - да, запрещает вложенные комментарии, но многие компиляторы разрешают вложенные комментарии при помощи соответствующих опций, и это без проблем всегда работало. В TurboC/C++ я этим постоянно пользовался.

Юрий писал(а):
Я же веду речь о невозможности использования длинного скобочного комментария в качестве вложенного.

Что такое "длинный скобочный комментарий"? И почему невозможно их вложение?

Юрий писал(а):
а что, если «нерабочий код» содержит синтаксическую ошибку?

И что?

Юрий писал(а):
Кстати, почему-то на этом форуме не получается отправить личное сообщение

Мне приходят ЛС от других пользователей. Завтра посмотрю с работы, что у вас там может быть.

Zealint писал(а):
Цитата:
Плюсы минусы существующих языков параллельного программирования

Таких как бы и нет вовсе.

Chapel.

Zealint писал(а):
Если мы хотим обсуждать достоинства и недостатки OpenMP и MPI, то здесь лучше открывать отдельную тему. Если кратко, то оба этих инструмента - бодяга.

Полностью согласен.

SII писал(а):
Смотря что понимать под параллельным программированием.

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 фев 2015, 00:30 

Зарегистрирован: 18 фев 2015, 12:59
Сообщения: 8
Да отдельная ветка "Параллельные вычисления" не помешала бы.
А то хотел вернуться к вопросу выбора ОС для таких целей, но это не менее отдельная тема чем все остальные.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 фев 2015, 03:04 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Yoda писал(а):
Возможностью запуска потоков сейчас даже обычный С не удивить.


Но в обычном C, как и в подавляющем большинстве других языков, многопоточность реализуется внешними относительно языка средствами -- библиотеками или прямым вызовом API ОС. Ну а здесь речь, как я понимаю, о поддержке распараллеливания на уровне самого языка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 мар 2015, 23:05 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Раз такое дело, решил чуток отписаться.

За прошедшее время, кажется, понял, в чем различие подходов Yoda и Юрия. Строчные комментарии ведь строчны -- конец строки является естественным неотключаемым концом комментария, и он перебивает остальные правила. Вспомнил, как однажды в парсере пришлось переключаться с Паскаля на ассемблер, а ассемблер-то -- строчный. Городил дополнительную логику.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 мар 2015, 23:42 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
С полгода как использую блочные комментарии на фасм. Только они называются по недоразумению макросами. А так - очень классная вещь - удобно быстро организовывать варианты кода и переключаться межу ними. Не сам додумался - какая-то книга аля совершенный код ,только по проще. Я её не осилил - но про вариантные гнёзда (цитата) - запомнил.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 мар 2015, 11:47 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Freeman писал(а):
Строчные комментарии ведь строчны -- конец строки является естественным неотключаемым концом комментария, и он перебивает остальные правила.

Вероятно, вы будете несколько удивлены, но попробуйте скомпилировать и запустить следующий код:
Код:
#include <stdio.h>

int __cdecl main (void) {
  int a=0;
  // Here is single line comment!\
  ++a;
  printf ("a = %d\n", a);
}

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 мар 2015, 13:04 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
А, ну это ваши сишные заморочки. Оператор ++a, следующий за комментарием, не скомпилируется, да? Сишного компилятора под рукой нет, есть только Delphi. :lol:

Это как раз пример плохого дизайна. Если в языке потоковый синтаксис -- он должен быть всегда потоковым, на то ему и точки с запятой даны. А если "тут играем, тут не играем, тут рыбу заворачивали" -- так и будет. Злорадствовать не буду, просто примите к сведению, что со стороны видней.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 мар 2015, 18:06 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Код:
 warning #1063: Single-line comment contains escaped new-line.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 мар 2015, 19:02 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Ну, речь-то не о возможности отловить такой способ, а о том, что язык потенциально допускает подобные извраты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 окт 2015, 02:10 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Вопрос-предложение к Йоде и к прочим языкоизобретателям :)

В довольно значительном количестве серьёзных инструментальных... хм... скажем, библиотек (например, Qt и Unreal Engline) для Це++ широко используются специальные макросы в комбинации с внешними средствами обработки исходного текста программы (метаобъектный компилятор в Qt, например). Эти хаки разной степени грязности преследуют две цели:

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

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

В Дельфях эта задача частично решена благодаря двум вещам:

- наличию у тамошних классов не только "низкоуровневых" полей (обычных переменных, по сути), но и свойств (ключевое слово property; с точки зрения программиста, использующего свойство, он обращается к нему как к обычному полю класса, но в реальности это может быть и обращение к полю, и вызов специального метода; в Це++ подобного нет, и поэтому там приходится использовать явные методы типа GetValue и SetValue, что загромождает исходный текст программы, да и менее удобно);

- наличию области видимости published (тот же public, но известный не только внутри самой программы, но и за её пределами; все свойства, которые можно редактировать в дельфозной ИДЕ, являются именно опубликованными).

Мне кажется, что подобные средства должны быть в приличном современном языке. Однако они всё же ограничены; например, в Дельфях невозможно сделать автоматическую сериализацию определённых свойств объектов (нет, в принципе, это возможно -- но только написанием внешнего дополнительного компилятора, управляемого особыми комментариями подобно макросам в Це++, а это не шибко элегантно и т.д. и т.п.). Ну а отсюда, собственно, вопрос: не задумывались ли, можно ли подобную задачу реализовать чисто средствами самого языка?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 285 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB