Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 06:31
Оценка:
Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?
Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
Я — свихнувшееся сознание Джо.
Re: Граматика С++
От: dimitry_dimitry  
Дата: 27.07.04 06:42
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()
... << Rsdn@Home 1.1.4 beta 1 >>
Re: Граматика С++
От: _Winnie Россия C++.freerun
Дата: 27.07.04 06:44
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...

Я думаю, что нет... вот сходу еще придумалось.

void f1()
{
   int a,b,c;

   a < b > c;
}

template <class> struct a {};

void f2()
{
  typedef int b;
  a< b > c;
}




struct X { X() {} };

int main()
{
  X x(); <- декларация фунции или переменная x ?
}
Правильно работающая программа — просто частный случай Undefined Behavior
Re[2]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 06:53
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

_>Здравствуйте, Sergey J. A., Вы писали:


SJA>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?
Или мой пример не верен ?
Я — свихнувшееся сознание Джо.
Re[2]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 06:53
Оценка:
Здравствуйте, _Winnie, Вы писали:

_W>Здравствуйте, Sergey J. A., Вы писали:


SJA>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...

_W>Я думаю, что нет... вот сходу еще придумалось.

"Нет" — то есть граматика С++ контекстно не зависима ?

_W>int main()
_W>{
_W>  X x(); <- декларация фунции или переменная x ?
_W>}


Может я неправильно понимаю термин контекстнозависимый, но мне казалось, что данный пример как раз и говорит о контекстной зависимости:
в зависимости от контекста строка может быть декларацией фунции или переменной.
Я — свихнувшееся сознание Джо.
Re[3]: Граматика С++
От: davenger  
Дата: 27.07.04 06:55
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, _Winnie, Вы писали:


_W>>Здравствуйте, Sergey J. A., Вы писали:


SJA>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...

_W>>Я думаю, что нет... вот сходу еще придумалось.

SJA>"Нет" — то есть граматика С++ контекстно не зависима ?

SJA>
_W>>int main()
_W>>{
_W>>  X x(); <- декларация фунции или переменная x ?
_W>>}
SJA>


SJA>Может я неправильно понимаю термин контекстнозависимый, но мне казалось, что данный пример как раз и говорит о контекстной зависимости:

SJA>в зависимости от контекста строка может быть декларацией фунции или переменной.

Нет, это всегда декларация функции.
Re[3]: Граматика С++
От: dimitry_dimitry  
Дата: 27.07.04 06:58
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, dimitry_dimitry, Вы писали:


_>>Здравствуйте, Sergey J. A., Вы писали:


SJA>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

нет. поэтому этот замечательный язык иногда является объектом нападок%)
SJA>Или мой пример не верен ?
... << Rsdn@Home 1.1.4 beta 1 >>
Re[3]: Граматика С++
От: Sir Wiz Россия  
Дата: 27.07.04 06:58
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

SJA>Или мой пример не верен ?
Определение понятия "контекстная зависимость" в студию.

А то я его в стандарте C++ не нашел
... << RSDN@Home 1.1.3 stable >>
Re[4]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 07:16
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

SJA>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

_>нет. поэтому этот замечательный язык иногда является объектом нападок%)
То есть в таком случае я был "правильно уверен" ?
Я — свихнувшееся сознание Джо.
Re[4]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 07:16
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

SJA>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

_>нет. поэтому этот замечательный язык иногда является объектом нападок%)
SJA>>Или мой пример не верен ?

Тогда как это стыкуется с примером:
x();
Что тут x ? Тип или переменная (с переопределённым оператором () ) ? Вроде есть зависимость от контекста... ?
Я — свихнувшееся сознание Джо.
Re[4]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 07:16
Оценка:
Здравствуйте, Sir Wiz, Вы писали:

SJA>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

SJA>>Или мой пример не верен ?
SW>Определение понятия "контекстная зависимость" в студию.

SW>А то я его в стандарте C++ не нашел


Сам бы хотел услышать формальное определение контекстнозависимой грамматики.
Предполагаю, что это такая граматика в которой для разбора нужны некоторые дополнительные данные, собранные раньше в процессе разбора....
Яснее выразить не могу...
Я — свихнувшееся сознание Джо.
Re[5]: Граматика С++
От: dimitry_dimitry  
Дата: 27.07.04 07:19
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, dimitry_dimitry, Вы писали:


SJA>>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

_>>нет. поэтому этот замечательный язык иногда является объектом нападок%)
SJA>То есть в таком случае я был "правильно уверен" ?
рискуя повториться в третий раз, скажу ДА.
... << Rsdn@Home 1.1.4 beta 1 >>
Re[4]: Граматика С++
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 27.07.04 07:21
Оценка: +1 -2
Здравствуйте, davenger, Вы писали:

D>Здравствуйте, Sergey J. A., Вы писали:


SJA>>Здравствуйте, _Winnie, Вы писали:


_W>>>Здравствуйте, Sergey J. A., Вы писали:


SJA>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...

_W>>>Я думаю, что нет... вот сходу еще придумалось.

SJA>>"Нет" — то есть граматика С++ контекстно не зависима ?

SJA>>
_W>>>int main()
_W>>>{
_W>>>  X x(); <- декларация фунции или переменная x ?
_W>>>}
SJA>>


SJA>>Может я неправильно понимаю термин контекстнозависимый, но мне казалось, что данный пример как раз и говорит о контекстной зависимости:

SJA>>в зависимости от контекста строка может быть декларацией фунции или переменной.

D>Нет, это всегда декларация функции.


Эта строка является объявлением функции только тогда, когда она появляется в Global Scope, иначе это — вызов конструктора по умолчанию для объекта класса.
... << Rsdn@Home 1.1.4 beta 1 >>
HgLab: Mercurial Server and Repository Management for Windows
Re[2]: Граматика С++
От: Андрей Галюзин Украина  
Дата: 27.07.04 07:21
Оценка:
SJA>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?
SJA>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x.
SJA>>Но я не уверен...

W> Я думаю, что нет... вот сходу еще придумалось.


W>
W> void f1()
W> {
W>    int a,b,c;

W>    a < b > c;
W> }

W> template <class> struct a {};

W> void f2()
W> {
W>   typedef int b;
W>   a< b > c;
W> }
W>



Этот пример как раз иллюстрирует зависимость от контекста.

--
aga
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re[5]: Граматика С++
От: Sir Wiz Россия  
Дата: 27.07.04 07:24
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Сам бы хотел услышать формальное определение контекстнозависимой грамматики.

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

Простейшее: корректность выражения x = 1; зависит от того, был ли ранее и как продекларирован x.

Можно открыть стандарт и ввести поиск слова context. Найдется много замечаний насчет context-dependent и context-independent выражениях.
... << RSDN@Home 1.1.3 stable >>
Re[6]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 07:27
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

SJA>>>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>>>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>>>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

_>>>нет. поэтому этот замечательный язык иногда является объектом нападок%)
SJA>>То есть в таком случае я был "правильно уверен" ?
_>рискуя повториться в третий раз, скажу ДА.

Первых два раза было больше похоже на "нет"
Я — свихнувшееся сознание Джо.
Re[7]: Граматика С++
От: dimitry_dimitry  
Дата: 27.07.04 07:30
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, dimitry_dimitry, Вы писали:


SJA>>>>>>>Является ли грамматика С++ контекстнозависимой ? Если да, то можно простенький пример ?

SJA>>>>>>>Мне кажется, что да, и пример — x(); неясно вызов это функции x или создание объекта типа x. Но я не уверен...
_>>>>>>правильно не уверены%) потому что это может быть экземпляр класса с перегруженным оператором ()

SJA>>>>>Так что правильно-то ? Я не уверен, что грамматика С++ контекстнозависима. Она контекстно независима ?

_>>>>нет. поэтому этот замечательный язык иногда является объектом нападок%)
SJA>>>То есть в таком случае я был "правильно уверен" ?
_>>рискуя повториться в третий раз, скажу ДА.

SJA>Первых два раза было больше похоже на "нет"

вы уж простите. я от Re[2]: char, потоки
Автор: Sir Wiz
Дата: 27.07.04
отойти не могу.
... << Rsdn@Home 1.1.4 beta 1 >>
Re[4]: Граматика С++
От: Андрей Галюзин Украина  
Дата: 27.07.04 07:37
Оценка:
SW> Определение понятия "контекстная зависимость" в студию.

С++ (как и С) является контекстно-зависимым языком. Т.е. конструкцию языка не всегда можно распознать без знания ее более широкого контекста.


SW> А то я его в стандарте C++ не нашел


Дык этого в стандарте и не будет, я так думаю. Это в книге по теории компиляторов надо искать.

--
aga
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re[6]: Граматика С++
От: Sergey J. A. Беларусь  
Дата: 27.07.04 07:43
Оценка:
Здравствуйте, Sir Wiz, Вы писали:

SJA>>Сам бы хотел услышать формальное определение контекстнозависимой грамматики.

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

SW>Простейшее: корректность выражения x = 1; зависит от того, был ли ранее и как продекларирован x.


Вроде не совсем так. При разборе данного выражения нет неоднозначности — x должно быть переменной. А определена она или нет — это уже мне кажется ошибка другого рода... То есть если будет граматика типа :
expr: var operator const | var operator var | const operator const;
variable : IDENTIFIER;
const : NUMBER;
NUMBER : [0..9];
IDENTIFIER : [a..z_][a..z0-9_]*;
То можно однозначно построить дерево разбора.

А вот для x(); и граматики:
tmp_obj : type "(' ')';
par_operator : variable "(' ')';
type : IDENTIFIER; (1)
variable : IDENTIFIER; (2)
IDENTIFIER : [a..z_][a..z0-9_]*;
Нельзя точно сказать что такое x — type или variable. Поэтому при "подъёме" из IDENTIFIER в type или variable нужны контекстные данные для выбора. Вот.

Всё это только предположения... зря я не прочитал Ахо до конца...

SW>Можно открыть стандарт и ввести поиск слова context. Найдется много замечаний насчет context-dependent и context-independent выражениях.
Я — свихнувшееся сознание Джо.
Re[8]: Граматика С++
От: Sir Wiz Россия  
Дата: 27.07.04 07:45
Оценка:
Здравствуйте, dimitry_dimitry, Вы писали:

SJA>>Первых два раза было больше похоже на "нет"

_>вы уж простите. я от Re[2]: char, потоки
Автор: Sir Wiz
Дата: 27.07.04
отойти не могу.

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

Очень хорошее слово "ИМХО".
Вот и +1 за выдающуюся самокритику
Автор: dimitry_dimitry
Дата: 27.07.04
улетел
... << RSDN@Home 1.1.3 stable >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.