0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 2
1

Допускается ли в фортране опускать пробелы?

30.09.2014, 17:45. Показов 899. Ответов 4
Метки нет (Все метки)

ДД!
Дочка пишет компилятор для фортрана (задание в юнивере). В книжке "Как писать компиляторы" сказано, что для большинства компиляторов фортрана, код
Fortran
1
do 100 n = 1, 30, 2
эквивалентен коду
Fortran
1
do100n=1,30,2
Препод, похоже, веник еще тот, и предлагает сначала убрать все пробелы, а потом парсить то, что осталось. Мне эта затея что-то не нравится, а если вместо константы 100 будет переменная cumentatio, как компилятор должен интерпретировать
Fortran
1
documentation=1,30,2
???
Вопрос: код во втором случае скомпилируется?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2014, 17:45
Ответы с готовыми решениями:

Опускать подвал с увеличением размера колонок
Здравствуйте. Есть совокупность ДИВОВ. <body> <div> <div class="header">SHAPKA</div> ...

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

Во введенном тексте удалить все пробелы, если пробелы присутствуют
Создать программу, которая спрашивает имя пользователя и здоровается с ним. Затем, предлагается...

Удалить повторяющиеся пробелы, также пробелы в начале и в конце строки (ассемблерная вставка)
Написать ассемблерную вставку, реализующую следующую обработку строки: согласно варианту. Оформить...

4
5785 / 4205 / 1683
Регистрация: 02.02.2014
Сообщений: 11,285
01.10.2014, 00:08 2
oradim, надо полагать, что при парсере необходимо учесть цифровой набор, потому как цикл do повторяется до определенной метки в числовом виде.
что за книга? напишите, пжалста, автора и точное название.
что касается самого цикла "do", в современном фортране используется иная комбинация, без метки.
Fortran
1
2
3
do i=1,100,2
 ! тело цикла
end do
и вряд ли ошибусь, если скажу, что пробелы при парсере весьма важны.
0
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 2
01.10.2014, 02:00  [ТС] 3
Спасибо, теперь знаю, что 100 - это метка.
Понял так же, что версий фортрана множество. Понял, что, видимо, существуют версии, в которых можно убрать все пробелы и код скомпилится - это вопрос грамматики языка, который пока повис в воздухе. Препод выдал свою версию парсера, так сказать "образец", с результатами работы которого он будет сравнивать парсеры студентов. Но образец, как сегодня выяснилось, не работает, точнее "работает не правильно". Не удивительно, поскольку в описании языка про метки ничего не сказано, новая строка не означает следующую инструкцию и пробел не является разделителем лексем. Как такое распарсить вообще не понятно. Короче, препода отправили учить матчасть. Таймаут.

Обложка книжки во вложении, цитата про фортран там же.
0
Миниатюры
Допускается ли в фортране опускать пробелы?   Допускается ли в фортране опускать пробелы?  
Модератор
Эксперт функциональных языков программированияЭксперт Python
29590 / 16154 / 3227
Регистрация: 12.02.2012
Сообщений: 26,727
Записей в блоге: 5
01.10.2014, 10:28 4
Естественно, убирать пробелы в текстовых константах нельзя. А вот в программном коде в Фортране-4 можно.

Добавлено через 1 минуту
Цитата Сообщение от oradim Посмотреть сообщение
Препод, похоже, веник еще тот, и предлагает сначала убрать все пробелы, а потом парсить то, что осталось. Мне эта затея что-то не нравится, а если вместо константы 100 будет переменная cumentatio, как компилятор должен интерпретировать
- нет, не веник. В этом случае будет просто ошибка...
0
5785 / 4205 / 1683
Регистрация: 02.02.2014
Сообщений: 11,285
01.10.2014, 10:50 5
oradim, книга 1992 года, она использует старый формат фортрана.
для примерного представления будет полезным почитать краткую историю фортрана в википедии на английском языке. в русскоязычной версии википедии тоже можно прочитать про фортран.
и преподаватель, видимо, тоже использует для работы именно старый формат. можете ли вы показать его "образец"?

Не по теме:

p.s. помня свои студенческие годы, советую все же работать по "образцу", т.е. выбраннному преподавателем версии.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2014, 10:50

Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %
Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %? Вот...

Допускается перемещение
не могу задать значение на "да" в свойствах формы, макет, допускается перемещение. что делать?...

Описать функцию, которая удаляет из заданной строковой величины все лишние пробелы. Пробелы считаются лишними,
Описать функцию, которая удаляет из заданной строковой величины все лишние пробелы. Пробелы...

Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы
Я уже решал эту задачу с помощью циклов и символьных массивов, и выкладывал на этот форум , но я не...

Тип класса не допускается
Добрый времени суток. Пересмотрел мануалы,они не добавляли тип класса. Ругается что тип класса не...

Дана символьная строка, содержащая буквы, цифры и пробелы. Написать строку задом наперед, удалив из нее все пробелы
Дана символьная строка, содержащая буквы, цифры и пробелы. Написать строку задом наперед, удалив из...


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

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

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