Перейти к содержанию
    

Так что для корректного сравнения надо еще аналогичный вывод приделать.

 

Да набуй этот ввод-вывод. Он же настолько платформеннозависимый, что только мешать будет. Давайте сравнивать чистую математику.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да набуй этот ввод-вывод.

Угу. printf() использовать для сравнения смешно, прикрутить печать строки и печать числа банально можно, но зачем... Инетесует именно качество компиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, я тут отсутствовал некоторое время, но был в курсе всех сражений. Хочу отметить, что:

 

 

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

 

 

2. На "войне" пора сделать маленький перекур. Предлагаю вниманию всех не_помню_откуда_пришедший дистрибутив Turbo Pascal версии 1.0. Показательно, где мы были в 1983 году и куда мы пришли.

 

 

3. Вопрос Паскалистам, ибо я уже не помню, а рыится в пыльных книжках не охота:

 

-- имеется-ли в Паскале тернарный оператор аналогичный си-шкному

 

(условие) ? (выражение1) : (варажение2)

 

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

 

-- имеется-ли в Паскале возможность использовать макросы типа

#define SetTCK()         ((JTAGOUT) |= (TCK))
#define ClrTCLK()        ((JTAGOUT) &= (~TCLK))
#define SetTCLK()        ((JTAGOUT) |= (TCLK))
#define StoreTCLK()      ((JTAGOUT  &   TCLK))

(кусок кода взят из реального проекта)

Pascal_ver_1_0.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю вниманию всех не_помню_откуда_пришедший дистрибутив Turbo Pascal версии 1.0.

 

За такой отличный баян - +1000 :) Даже инсталятор на месте, пришлось ему кнопки подправить под современную клавиатуру. И самое чудное - работает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Приятно то, что ...

Ага! Надоело ругаться? А мы Вам щас!... :)

 

-- тернарный оператор

-- возможность подставлятьть он-лайн функцию

-- имеется-ли в Паскале возможность использовать макросы типа

1. Нет

2. Да (ин-лайн - у Вас опечатка)

3. Нет. Там ведь с макросами всегда туго. В смысле, их нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага! Надоело ругаться?

Ругаться? Даже собственно причины нет.

А мы Вам щас!... :)

Еще какие-то байки?

2. Да (ин-лайн - у Вас опечатка)

Вы опять про Delfi.. или подобные. Паскаль по жизни даже раздельной компиляции не имеет, а тут inline

3. Нет. Там ведь с макросами всегда туго. В смысле, их нет.

Ну это вообще не страшно - с легкостью можно воспользоватся сишным препроцессором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага! Надоело ругаться? А мы Вам щас!... :)

В некоторм смысле -- да. Только не ругаться, а спорить.

 

ин-лайн - у Вас опечатка

Конечно. THX!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ругаться? Даже собственно причины нет.

Шутка. Была. А Вы ее в тот же унитаз...

 

Вы опять про Delfi..

Неа. В ТР7, емнип, был квалификатор

 procedure blah_blah( bubu: integer); inline;

Ясное дело, что костыль, но приятно :)

 

Ну это вообще не страшно - с легкостью можно воспользоватся сишным препроцессором.

+1 Так и делал когда-то. Прижало, знаете ли, тоже битики выдергивать. А для масок - можно и константами обойтись. А еще есть оператор with.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а скажите мне, уважаемые Паскалисты, живет-ли еще в Паскале такой анахренизм как множество?

 

Вопрос вот в чем. Как известно, Си славится тем, что очень компактный. На столько компактный, что не даже имеет встроенных в язык операторов ввода/вывода. Все недостающее обеспечивается библиотеками, который огромное количество. У Паскаля же, на сколько я помню, многие операторы неотъемлемы от языка.

 

Я помню, что множества можно было объединять, пересекать, еще что-то с ними делать. Помню, что размеры множества не могли быть больше 256 бит. В теории все это выглядело очень красиво. Практически же применить было негде. И я тогда искренне не мог понять -- а зачем они нужны? Разве что только для обучения школьников математике.

 

Но с другой стороны, опять же было непонятно, операции перемножения матриц в Паскале отсутствуют, действия с комплексными числами -- тоже, а вот множества -- были. Зачем? В моем мозгу это оставило неисгладимый след, как какое-то однобокое (юродивое?) явление в языке. Было крайне не понятно, зачем это в язык встраивать? Сомнительная вещь? -- Оформите в виде библиотеки, кому надо, тот подключит. Зачем ограничили 256-ю битами? А если у меня 365 (по количеству дней в году) единиц будет, что мне делать?

 

По-моему это был Паскаль от Борланда где-то между 5-ой и 6-й версией. Хотя за давностью лет и абсолютной невостребованностью мозг самочистился от инормационного мусора.

 

Итак, поддерживает-ли Паскаль множества? Если да, то где сфера их применения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у E-LAB оказывается есть версия без ограничений для Mega8/88.

Может кто потестит, а то Огурцов куда-то пропал.

Я не смог заставить работать под wine, а винды нет. Сылка

Изменено пользователем 733259

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не смог заставить работать под wine, а винды нет. Сылка

Ничего не потеряли. Скачал. Поставил. Интерфейс в худших традициях (это когда борланд пытается сделать "красиво" по умолчанию) Ну ладно, потерпим, хотя я обычно сношу такое сразу без дальнейшей траты времени. Будем считать, что кому-то очень нравится. Попытался найти коппилятор командной строки - может и можно как-то делать, но интуитивно непонятно. Зато в всяких проектиков библиотек, утилиток(столь-же жутких с виду) навалено немеряно - все, что надо для бездумного программирования воспитанникам поколения Борланд. Ладно, попытался прицепить вываленное Огурцовым ввиде проекта.... кончилось это PopUp сообщением "internal assembler error 16" и мертвым зависанием всей этой борлондячей красоты. Простите, но на этом я все закончил. Результат компиляции я уже видел ранее. Мне хватило.

Да, кстати, при запуске "это" полезло (пыталось :) ) на какой-то свой сервак.

P.S.

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

Изменено пользователем zltigo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, результат ужасный!

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

Но нет, так нет, не очень и хотелось :) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу. printf() использовать для сравнения смешно, прикрутить печать строки и печать числа банально можно, но зачем... Инетесует именно качество компиляции.

 

Качество компиляции и переносимость будут хуже. Качество "по определению". Переносимость, в связи с отсутствием конкуренции в этой области.

 

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

 

Возьмём русский язык.

1) Переведите английский текст на русский и сравните по длине.

2) Правильность и законченность построения языка.

3) Благозвучность и прочее...

 

Вопрос.

1)Почему вся конфа здесь на руссом языке?

Ответ.

1) Потому что язык лучше и позволяет лучше выразится.

2) Потому что английский не знаю.

3) Потому что на нём мне общаться комфортнее.

4) Потому что вокруг меня все на нём общаются.

 

Ответьте саме для себя на эти вопросы и проанализируйте это. Примерно тоже будет и с языками программирования.

 

Ниже моё мнение. То что сразу бросается в глаза при переходе с языка на язык.

Для микроконтроллеров конечно язык Си лучше по ряду преимуществ. Именно речь идёт о преимуществах языка, а не преимуществах компиляции/ переносимости/ доставаемости.

Все эти преимущества проявляются в условиях ограничения ресурсов. В противном случае - не существенны.

 

1) (Почему то никто не отметил, либо я не заметил) Возможность напрямую работать с битами.

Не через and/or а именно на прямую. Объявить UNION, поименовать и вперёд!

2) (Отмечали уже) Построение оператора выбора. Не часто но используется.

 

Всё остальное - удобство.

1) Лаконичность самого языка.

2) Множественные присваивания

3) Более удобная система работы с указателями.

4) Отсутствие ненужных проверок.

5) Простота операторов.

 

При обратном переходе вызывает сожаление только один момент. Парадоксально, но закоренелые Сишники :) тут данный недостаток, пытались выставить как достоинство. :)

 

Более грамотное построение локальности/ глобальности переменных. Тут один уже говорил о возможности в Си объявить переменную прямо в цикле. Так вот, видимо он не знает всей правды. :)

 

Паскаль имеет иерархическое строение локальности (видимости). Включая процедуры. Схема такая

 

A  // (A1)
{
}

D
{
}

C
  {
    i,j // объявление  (i1,j1)
    A // объявление (A2)
     {
        i // объявление (i2)

        // Тело процедуры A2 *

     }
    B  // объявление
     {
        i,j // объявление (i3,j2)

        // Тело процедуры B *

     }

     // Тело процедуры С ***

}

 

В месте "*" при вызове D-D. При обращении к i - i2, j-j1

В месте "**" при вызове A - вызовется A2, D-D. При обращении к i - i3, j-j2

В месте "***" при вызове A - вызовется A2, B-B, D-D. При обращении к i - i1, j-j1

 

Этого в Си не хватает.

 

В какой-то ветке писали, что GCC поддерживает вложенные процедуры. Интересно не то что он поддерживает это (согласно стандарта данная фича не описана), а интересно то, что кто-то сделал, и что кто-то пробовал.

На мой взгляд, это подтверждает, что данной фишки не хватает тем, кто это испробовал.

 

Я не буду в Си использовать это до тех пор, пока оно не будет поддержано на уровне стандарта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, результат ужасный!

Блин, я в самых только началах этой прекрасной темы приводил все эти ссылки по AVR паскалю. Все боян.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответьте саме для себя на эти вопросы и проанализируйте это. Примерно тоже будет и с языками программирования.

Совершенно неверная параллель. Язык программирования это не язык Матери, который НЕ выбирают.

Это, как минимум ВТОРОЙ язык. А теперь, давайте ответим на такой вопрос - почему в качестве второго иностранного языка относительно мало распространен не правильно-строгий-простой в освоении Эсперанто а достаточно жутковатый c точки зрения Эсперанто Английский распространен буквально везде.

Все эти преимущества проявляются в условиях ограничения ресурсов. В противном случае - не существенны.

В условиях малоограниченных ресурсов не проявляются достоинства ни одного из обсуждаемых языков. Тут уже и VBA такооое позволяет написать :)

Этого в Си не хватает.

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

В какой-то ветке писали, что GCC поддерживает вложенные процедуры. Интересно не то что он поддерживает это (согласно стандарта данная фича не описана), а интересно то, что кто-то сделал, и что кто-то пробовал.

Поддерживает. Разбирлся однажды с одним таким исходником - работает. Правда тот кусок переписал и не по причине наличия вложенности, а по причине общей кривизны.

Я не буду в Си использовать это до тех пор, пока оно не будет поддержано на уровне стандарта.

Не думаю, что это будет в стандарте.

 

 

 

Блин, я в самых только началах этой прекрасной темы приводил все эти ссылки по AVR паскалю.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...