Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
#1

Грамматика программы - C++

28.07.2013, 05:39. Просмотров 972. Ответов 5
Метки нет (Все метки)

Может ли мне кто-то наглядно объяснить что такое первичное выражение, чем оно отличается от обычного выражения. Что такое терм и чем он отличается от лексемы?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 05:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Грамматика программы (C++):

Формальная грамматика - C++
Всем привет Разработать программное средство, реализующее следующие функции: 1) ввод произвольной формальной грамматики с...

Паттерн Interpreter и грамматика - C++
Может не особо по теме C++, но все же. Столкнулся с некоторой трудностью. Читал про паттерн Interpreter, который, вроде как , служит для...

Автоматная грамматика - проверить, за каждым ли вхождением пары 11 следует 0? - C++
Суть задания такова: есть цепочка из 1 и 0. Проверить: за каждым вхождение пары 11 следует 0? задание готовое, но не принимают потому что...

Грамматика условного оператора присваивания - C++
Опишите синтаксис условного оператора присваивания языка С. В правой части такого оператора задаётся с помощью отношений и арифметических...

Составить блок схему для программы упорядочивания чисел в массиве(код программы прилагается) - C++
#include <iostream> #include <stdlib.h> using namespace std; int main() { int N = 0; // N - количество элементов в массиве...

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

5
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
28.07.2013, 09:06 #2
Могу порекомендовать книгу где это рассматривается.
Ахо,Лам,Сети,Ульман - Компиляторы. Принципы, технологии, инструменты.2ed.2008
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
28.07.2013, 09:43 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В четвертом веке до Р.Х., Демокрит Абдерский развил учение об атомах: атом - неделимая частица вещества, тела - комбинации атомов.

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

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

Терм - это синтаксическая единица, последовательность символов входного алфавита, набор букв, черточки иероглифа.

Лексема - это семантическая единица, осмысленное слово данного языка, иероглиф. Лексема может состоять из одного или нескольких термов, так же как иероглиф может иметь одну или несколько черточек.

Аналогично лексеме, первичное выражение - это простейшее (неделимое) выражение. Рассматривайте его как "иероглиф", составленный из лексем.

В языке C, первичные выражения - это идентификаторы, константы, строки и выражения в скобках.
В C++ первичным выражением является также идентификатор из области видимости: 'Typedef-имя::идентификатор'.
4
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
29.07.2013, 05:25  [ТС] #4
Т.е. к примеру, число 1 - это терм, а число 11 - лексема, но тогда и число 1 может быть лексемой, но число 11 не может быть термом?
0
gazlan
3133 / 1909 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
29.07.2013, 06:15 #5
Терм - это набор символов алфавита. Лексема - это терм (или комбинация термов) имеющая смысл в данном языке и неделимая на меньшие части (без утраты смысла).

Если в вашем языке '11' имеет специальный смысл, невыводимый из '1' и '1' - это лексема. Иначе - терм.

Иными словами, терм - это бездушная синтаксическая конструкция, лексема - это то, что наделено семантикой, смыслом, "душой" языка :-)

"Неделимость" в естественном языке хорошо иллюстрируют идиомы. Например, такие сочетания, как "скатертью дорога" или "лепить горбатого" (феня) не могут быть разбиты на составляющие или составлены из других, даже синонимичных, слов без утраты смысла.
1
korvin_
1934 / 1419 / 225
Регистрация: 28.04.2012
Сообщений: 5,085
29.07.2013, 16:35 #6
Цитата Сообщение от gazlan Посмотреть сообщение
лексема - это то, что наделено семантикой, смыслом, "душой" языка
Скорее это часть лица. "Душой" языка тогда уж будет его вычислительная модель (парадигма).
0
29.07.2013, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2013, 16:35
Привет! Вот еще темы с ответами:

Открытие файла другой программы из программы.Косяк. - C++
Итак, есть в программе такой кусок: system("E:\\KMPlayer\\KMPlayer.exe E:\\WINDOWS\\New_year.mp3"); Косяк в том, что пока песня не дойдёт...

Подскажите. Не компилирует текст программы, запрашивает в коде мол не достающую скобку. Ниже приведен текст программы. - C++
#include <iostream.h> unsigned int perimetr ( int a,int b); int main() { int a,b; cin >> a; cin >> b; cout << "perimetr="...

Не понимаю текста программы. Что будет напечатано в результате программы? И что вообще происходит в программе? - C++
class B { int x; B (int a=0) { x = a; cout « 1; } -B () { cout « 3; } }; class D : B { D (int d ) : B (d) {...

Дан текст программы на С++...Записать в выходной файл текст программы без комментариев - C++
( структуры и текстовые файлы)– Чтение данных в массив структур должно производиться из входного текстового файла. Дан текст...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.