Си или Паскаль. Что можно и что нет.

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

Модератор: Модераторы

Лояльность Си или строгость Паскаля

Си
13
16%
Паскаль
68
84%
 
Всего голосов : 81

Сообщение e-moe » 23.10.2007 22:47:24

debi12345, спасибо за примеры, мысль понял ;)
e-moe
новенький
 
Сообщения: 31
Зарегистрирован: 27.09.2007 17:00:39

Re: Си или Паскаль. Что можно и что нет.

Сообщение RENXFIL » 17.11.2012 16:25:18

Мутирую ~>
=)
Аватара пользователя
RENXFIL
новенький
 
Сообщения: 16
Зарегистрирован: 23.09.2011 16:47:57
Откуда: Я и сам не знаю.

Re: Си или Паскаль. Что можно и что нет.

Сообщение redwolf » 17.11.2012 18:43:50

Для прикладного программирования, ПМСМ, ответ очевиден- Паскаль. Для системного- тоже (впрочем, в этом случае у Си появляются другие сильные конкуренты).
Да и тезис "разрешено всё, что не запрещено"- не совсем корректен.
Для решения типичных косяков, вызванных языком могут использоваться даже аппаратные средства- NX-бит, например.В Delphi переполнение буфера- это даже маленькая задачка. В Си (где всё разрешено) - это типичная ситуация :)
redwolf
новенький
 
Сообщения: 23
Зарегистрирован: 17.11.2012 18:16:21

Re: Си или Паскаль. Что можно и что нет.

Сообщение alexey38 » 18.11.2012 08:42:51

Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.
Но разработчики компиляторов Паскаля по какой-то причине приогнорировали тематику системного ПО, то есть не была создана возможность писать драйвера и некоторые другие модули, которые трубуют специального режима компиляции. Например, в драйвере должен применяться другой менеджер кучи (память нужно выделять по другому или вообще применять статическое выделение памяти для последующего использования ее менеджером кучи). Отсюда системное ПО оказалось сугубо полем С, который меньше всего годится именно для этих задач. Вот в прикладных задачах, на С++ уже возможно применение безопасных приемов программирования, а в системном все зациклино на внимательность и адекватность программиста.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re:

Сообщение Рождённый_в_СССР » 17.12.2012 16:49:04

Практика показывает, что С и С++ меньше всего подходят для написания системного ПО, т.к. 99% дыр в безопасности - это следствие слабых строн языка С.

Чья практика? Создателей языка C--?
о каких 99% дырах идёт речь? отсутствие сборщика мусора? этого нет и в fpc, куча синтаксического сахара? остутствие контроля указателей? о каких 99% дырах речь? я впервые слышу это... C и C++ - разные вещи... лучшее на сегодняшний день для системного программирования чем C - только ассмеблер и какой-нить AHDL (но там свои тараканы)
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Re: Си или Паскаль. Что можно и что нет.

Сообщение alexey38 » 17.12.2012 17:39:24

Рождённый_в_СССР писал(а):о каких 99% дырах идёт речь? отсутствие сборщика мусора? этого нет и в fpc, куча синтаксического сахара? остутствие контроля указателей? о каких 99% дырах речь? я впервые слышу это... C и C++ - разные вещи... лучшее на сегодняшний день для системного программирования чем C - только ассмеблер и какой-нить AHDL (но там свои тараканы)

О тех, которые ежемесячно в качестве багов поступают в обновления всех видов ОС (Винда, Линухи, Юниксы и т.п.), всех вариантов браузеров и т.п.
А вот сборщик мусора в системных задачах штука принципиально не применимая.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Си или Паскаль. Что можно и что нет.

Сообщение Kemet » 18.12.2012 12:03:36

alexey38 писал(а):ора в системных задачах штука принципиально не применимая.

Есть куча ОС, написанных на типобезопасных языках, с использованием сборщика мусора.
Например SPIN - написана на Модуле-3,
Виртовская Оберон - написана на Оберон
A2, она же Bluebottle, она же AOS - написана на Активном Обероне (Active Oberon)
список можно продолжать...
Kemet
постоялец
 
Сообщения: 233
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: Си или Паскаль. Что можно и что нет.

Сообщение sign » 18.12.2012 13:29:25

Kemet писал(а):список можно продолжать...

Можно.
Теперь от вас список реального применения этих ОС.
В промышленности? Может в планшетах? Или в телефонах? Ещё где?
sign
энтузиаст
 
Сообщения: 962
Зарегистрирован: 30.08.2009 09:20:53

Re: Си или Паскаль. Что можно и что нет.

Сообщение Kemet » 18.12.2012 14:32:24

sign писал(а):Теперь от вас список реального применения этих ОС.
В промышленности? Может в планшетах? Или в телефонах? Ещё где?

Если персонально вам они не нужны, ну и ради бога.
Лично мы используем A2 - направление роботизация. Систему, основанную на Native Oberon, используем для управления производственной линией.
ОС Оберон и производные также используют
Где-то на сайте ETH был более подробный список.
В любом случае, речь шла не о чьём-то персональном использовании, а о наличии и возможности использования типобезопасных языков с использованием сборщика мусора для построения минималистичных и надежных операционных систем.
Kemet
постоялец
 
Сообщения: 233
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: Си или Паскаль. Что можно и что нет.

Сообщение alexey38 » 18.12.2012 14:41:46

Kemet писал(а):с использованием сборщика мусора

Кстати не нужно путать функцию автоматического удаления строки или объекта при выходе из зоны видимости (что есть в паскале в строках, динамических массивах и ком-объектах) со сборщиком мусора который живет своей жизнью, оторвавшись от бизнес-логики. Для реальной ОС должно быть очевидным время выполнения конкретной функции, не должно быть так, что в этот раз мы память не очистим, а в другой раз очистим.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Си или Паскаль. Что можно и что нет.

Сообщение fwp » 07.06.2013 11:21:42

Kemet писал(а):Есть куча ОС, написанных на типобезопасных языках, с использованием сборщика мусора.
Например SPIN - написана на Модуле-3,
Виртовская Оберон - написана на Оберон
A2, она же Bluebottle, она же AOS - написана на Активном Обероне (Active Oberon)
список можно продолжать...

Проект Singularity. А также его потомки Cosmos и Fantom. Написаны не только на типобезопасном языке, но и использует "управляемый" код. По производительности и надежности дадут фору многим современным коммерческим поделкам.
fwp
новенький
 
Сообщения: 29
Зарегистрирован: 25.03.2008 12:00:06

Re: Си или Паскаль. Что можно и что нет.

Сообщение carrots » 04.07.2013 13:33:12

Я, например, немного чувствую дискомфорт в фрипаскале из-за его строгости. Часто хочется объявлять переменные в любом месте, иногда удобно тело функции написать при объявлении типа. и т.д.. Думал даже препроцессор написать чтоб добавить такие возможности. В fpc естественно есть свои плюсы..
Аватара пользователя
carrots
постоялец
 
Сообщения: 138
Зарегистрирован: 28.03.2008 02:13:02

Re: Си или Паскаль. Что можно и что нет.

Сообщение serbod » 04.11.2016 11:22:16

carrots писал(а):Я, например, немного чувствую дискомфорт в фрипаскале из-за его строгости. Часто хочется объявлять переменные в любом месте, иногда удобно тело функции написать при объявлении типа.

Это типичное впечатление новичков при написании программы с нуля. Поэтому новички так любят Python и JavaScript, где нет "бюрократии".
Но когда проект разростается до десятков модулей и тысяч функций/методов, то возникает проблема навигации и рефакторинга. И вот тут паскаль со своими предварительными объявлениями и строгой типизацией рулит и педалит. А в других языках придумывают костыли для типизации и оглавления, которые непонятны новичкам. =)
Аватара пользователя
serbod
постоялец
 
Сообщения: 341
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: Си или Паскаль. Что можно и что нет.

Сообщение runewalsh » 04.11.2016 16:58:22

Паскаль не может рулить на «больших проектах», потому что в Паскале ПРИНЯТО использовать низкоуровневые штучки вроде взятия УКАЗАТЕЛЕЙ на элементы динамических массивов, приведения через простой (не as) каст классов, которые ТОЧНО-ТОЧНО ПРИВОДИМЫ и т. д. Или вот, по крайней мере, в среде Delphi по непонятной мне причине есть ТРАДИЦИЯ слишком привязываться к платформе — как среди программистов, так и разработчиков самой Delphi. Вспомните, например, зачем были введены интерфейсы, или как объяснялись изменения в компиляторе под iOS. FreeAndNil, официально НЕ ПРОВЕРЯЮЩИЙ тип параметра — это вообще вышка (пропускает незамеченной смену типа FreeAndNil'ящейся переменной с объекта на интерфейс, массив или запись — что там про типизацию?). Всё это — мины замедленного действия, в отличие от Питона — с неопределённым поведением.
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 411
Зарегистрирован: 27.04.2010 00:15:25

Re: Си или Паскаль. Что можно и что нет.

Сообщение Sharfik » 04.11.2016 19:24:30

runewalsh писал(а):Питона

Питон и его синтаксис бред сумасшедсшего. Популярный потому что гуглу захотелось в него поиграть.
Sharfik
постоялец
 
Сообщения: 482
Зарегистрирован: 20.07.2013 01:04:30

Пред.След.

Вернуться в Компилятор / язык программирования

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

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

Рейтинг@Mail.ru