Паскаль самый безопасный язык программирования ? #235051


#0 by Иде я
Линус Торвальдс достаточно нелестно отозвался о некоторых опциях показа предупреждений (warnings) в GCC, говоря о том, что реализация многих из них просто не учитывает желания программиста и реальные проблемы. Тем неменее, некоторые из предупреждений очень полезны и используются при сборке ядра. Линус также отметил, что язык C не совершенен и для написания абсолютно безопасного кода он бы выбрал Паскаль.
#1 by Иде я
#2 by igork1966
Сделайте систем которой сможет пользоватся и дурак, и только дурак захочет ей пользоваться.
#3 by igork1966
систем = систему
#4 by Иде я
Стал бы летать на самолетах под управление windows ?
#5 by Гений 1С
Паскаль-подобный язык в навижн use
#6 by Херрес
самый безопасный - на нём ничего нельзя запрограммировать
#7 by romix
Мягко говоря, спорное утверждение.
#8 by romix
Видимо, Торвальдс постеснялся упомянуть ".NET".
#9 by Vlad55
Писал на Паскале под ДОС.Очень надежно.
#10 by ШтушаКутуша
Гонишь? :)))) Или не подумал? :))))
#11 by VasilyKushnir
Что такое "безопасный код"? Я что, что-то не то сегодня курю? Всего два примера: Делфи и С-билдер. Лично мне Паскаль не в нюх, но если надо что-то побыстрячку и красиво, естественно Делфи! Хотя Си уважаю больше. В принципе, если сильно постаратся, то и на Си можна каку накалякать, а Бейсике забацать лялю. В чем проблема?
#12 by корум
3 последних буквы лишними стали?
#13 by ШтушаКутуша
Принято считать,что C++ генерит более эффективный код. В смысле легче его сгенерить.
#14 by Иде я
В паскале строгая типизация переменных.
#15 by mrkorn
:)  Ждем  Линукс .NET
#16 by Эльниньо
Я в досовском Паскале как-то вирус наваял - очень безопасный.
#17 by romix
В C она тоже строгая.
#18 by romix
Только в C++ синтаксис - черт ногу сломит. Нет ключевых слов var, procedure, function. Не знаю, как компилятор (и человек) находит где объявления, а где код. В Delphi код точно такой же, но его хотя бы читать можно.
#19 by ШтушаКутуша
Штоооооо?! Может ты С++ имел ввиду?
#20 by MMF
ну насчет самый безопасный это гонево.
#21 by spock
в обоих.
#22 by Гений 1С
Если в данном диалекте Пасцаля нет типа Variant, то это отцтой, иногда он нужен. А если такой тип есть, то это уже Бейсик. Навижн со встроенным паскалеподобным языком - это ужас... Программист должен думать о длине строк. Трандец. Не, я выбираю бейсик и джава.
#23 by Гений 1С
Безопасность должна быть на уровне защиты ядра системы, а не на уроне языка.
#24 by romix
Кроме того, в C - нагромождение операций. Такого наворотили, что сам чёрт копыта отбросит. Даже Волшебник попался как-то на эту удочку: написал & вместо && в PHP-скрипте, и ничего, PHP это "успешно" схавал.
#25 by orefkov
Убивает не оружие, убивают люди.
#26 by MMF
есть опасные бритвы, а есть безопасные. Бреют и те и другие, а порезаться можно только опасными. Будущее за обероноподобными языками
#27 by romix
Этот тип есть, но относительно редко используется (не рекомендуется его юзать без необходимости). Строковый тип Паскаля был повторен в C++; он быстрее (как ни странно) и безопаснее C-шного отстоя.
#28 by spock
про BSTR чтоли речь?
#29 by romix
При работе с оборудованием на производстве необходимы заграждения и такие вещи, как двуручное включение пресса.
#30 by ШтушаКутуша
а у встроенного языка 1С-нет имени! Может придумаем? :)))
#31 by MMF
это говно не заслуживает носить собственного имени. Нечто скриптовое бейсикообразное
#32 by Очкарито
предлагаю назвать его "встроенный язык 1С".
#33 by Кецалькоатль
Тут, имхо, какое-то нелогичное трактование понятия "безопасного кода". Я так и не понял, что имелось ввиду.
#34 by Иде я
одноэсина осина
#35 by romix
Паскейсик
#36 by Trigg
Пятница епт... пивка иди попей лучше!
#37 by Очкарито
кста: точно помню, что был оберон под дос, а под винду есть?
#38 by ШтушаКутуша
Предлагаю,назвать встроенный язык 1С: Romix,предметно-ориентированный....
#39 by it086
есть поделки всякие. и под .net в том числе
#40 by Гений 1С
в 1с бейсик используется.(его диалект)
#41 by Иде я
За рулем пока...но морально готовлюсь. Думаю - может в харю на дачу рвануть ? Или тупо с пивом рубится в линейку...хз
#42 by Иде я
Угу, гейсик называется :)
#43 by Очкарито
бугога!
#44 by VasilyKushnir
>Строковый тип Паскаля был повторен в C++; он быстрее (как ни странно) и безопаснее C-шного отстоя. А при каких хырах миллиция, если свинью молнией убило? Какая связь между строковым типом и безопасностью? И вообще о какой безопасности идет речь? Я же говорю, пользуюсь и тем и другим. И у каждого есть свои полюсы и свои минусы.
#45 by Очкарито
щас тебе ромикс объяснит как связаны строковый тип и безопасность.
#49 by Волшебник
Его ещё называют "одинэсик". Я так назвал своего кота.
#50 by КЗ
Бедный кот. :-(
#51 by Широкий
почему бедный? вот ему не пофигу...
#52 by romix
>"Какая связь между строковым типом и безопасностью? И вообще о какой безопасности идет речь?" Речь идет об ошибке переполнения буфера - пожалуй, самой частой причине взлома и краха систем, написанных на C. Если в Дельфи увеличение строки просто приведет к автоматическому выделению новой памяти (по-моему, происходит удвоение размера буфера, когда строка перестает помещаться в старом буфере), то в строках в стиле C неожиданно большая строка может затереть указатели и адрес возврата в стеке, чем пользуются злоумышленники. И случайные ошибки (сбои) часто возникают по этой же причине. Помимо того, что C-строки небезопасные (на них нельзя положиться), так они еще и тормозные. Чтобы определить длину строки, надо просканировать ее от начала до конца, а это отнимает много тактов процессора в обычных строковых операциях (копирование, вставка, выделение подстроки и т.д.). Еще один недостаток C-строк: строка не может содержать символ с кодом 0. Короче, сборник уродств и недостатков - для, пожалуй, самого распространенного на практике типа данных. Помимо строк часто используются указатели, чтобы строить структуры данных. В библиотеке Delphi есть готовые структуры данных (такие, как TStringList), тогда как в C надо строить при помощи указателей - весьма "взрывоопасного" строительного материала. Ошибка может остаться незамеченной, а у заказчика (или при эксплуатации) приведет к краху системы. Если же рассматривать C как более компактное описание ассемблера - обилие трудночитаемых и чреватых ошибками закорючек (некоторые программисты составляют из них затейливые конструкции в стиле "достать левой пяткой правое ухо") и отсутствие необходимых ключевых слов (var, procedure, function) заставляют задуматься, откуда всенародная любовь к языку из закорючек и опасностей. Если бы из C++ выкинули (или поглубже запрятали) C-шное наследие, и добавили (var, procedure, function), то я бы считал его нормальным языком. Только не есть ли это Delphi...
#53 by Валентин
Задрали... Кривизна языка прямо пропорциональна кривым рукам. Если не думаешь когда пишешь - то о чем можно говорить? В качестве аргумента когда-то говорил что и не васике можно срыв стека организовать... Так что думать надо что пишешь. С - достаточно емкий язык. С++ еще более емкий. Искать Буча, Александреску etc. Читать и восхищаться.
#54 by Иде я
Кстати, а третья нормальная форма не факт что будет эффективна... К сожелению реалии таковы, что надо заставить на существующем железе заставить выполнятся эти ипучие бухрасчеты за минимальное время.
#55 by ШтушаКутуша
#56 by romix
"Каждая ошибка имеет фамилию, имя и отчество" (с) И.В.Сталин
#57 by Моха Лёхов
В Паскале труднее сделать ошибку, язык жестче относится к типам данных, ссылкам и пр. В С можно такого наколбасить. Но С погибче будет.
#58 by Neco
Скорее всего Линус говорил не про Паскаль, а про Ада: язык программирования, созданный в 1979—1980 годах в результате грандиозного проекта, предпринятого Министерством обороны США с целью разработать единый язык программирования для так называемых встроенных систем. (...) Язык Ада возник в результате международного конкурса языковых проектов, проходившего в 1978—1979 годах. (...) Интересно, что все языки, дошедшие до последних туров этого конкурса, были основаны на Паскале. В этой связи Аду можно предварительно охарактеризовать как Паскаль, развитый с учётом заданных пяти основных требований. При этом авторы пошли в основном по пути расширения Паскаля новыми элементами. )
#59 by romix
Макроглоссия (macroglossia; мокро- + греч. glossa язык; син. мегалоглоссия) - патологическое увеличение языка; наблюдается как аномалия развития или при наличии в языке хронического патологического процесса.
#60 by orefkov
2romix Так уж люди устроены. Одни понимают концепцию указателей сразу, другие никогда, как бы не старались. В С++ нет никакого встроенного строкового типа. Как был в C char*, так и остался. Другое дело, что C++ позволяет с легкостью определить свой собственный тип, с какими надо свойствами, и использовать его. Боишься указателей - юзай smart-поинтеры, коих несчесть числа. C++ нравится мне своим духом, который выражается в трех принципах: 1. Поддерживать язык простым. 2. Доверять програмисту. 3. Не мешать програмисту делать то, что ему надо.
#61 by Mikeware
Присоединяюсь. Как сказал Димка Голдобин еще году в 1989 - "ненавижу умные компиляторы" :-) Зы: правда, я давно не брал в руки сишек... ;-)
#62 by Подполковник
пишем на бейсике
#63 by Ay49Mihas
Всё это понятно, но С давно уже позиционируется как кроссплатформенный ассемблер, а не как язык высокого уровня для решения прикладных задач. То, что студенты, выучившие алгоритмизацию на примере С, пытаются всё остальное реализовать на С, не говорит о том, что С плох. Языки высокого уровня популярны потому, что там можно выразить больше действий языков низкого уровня в одной команде (одной строке). А человек делает почти постоянное количество ошибок на постоянное количество строк кода. И если это будет язык высокого уровня, то ошибок будет меньше на одну задачу, чем в языке низкого уровня. Для меня Паскаль плох своей низкой читаемостью (да, хороший стиль может исправить эту ошибку, но я почему-то встречался только с исходниками где табуляция заменена двумя пробелами, и это всё делает код массивным и нечитаемым). Из хорошо читаемых, высокоуровневых и удобных, опять же, могу предложить PHP и Python. Как ЯП общего назначения.
#64 by Песец
Изучение языка С++ для программиста - как для лингвистов латынь: если знаешь латинский можно считать что знаешь все европейские языки и без особого труда освоишь любой другой язык. Можно изучать английский, затем немецкий, затем последовательно остальные. А можно один раз выучить латынь, а потом достаточно посмотреть что в другом языке убрано/упрощено в сравнении с латынью - и можно сказать ты знаешь этот язык.
#65 by Песец
(64+) "С - язык, созданный программистом для программистов" (с)
#66 by VasilyKushnir
Вопросс   romix. Наверное у меня к пасику предубеждение (хотя Делфи курю и даже нравится) вот из-за чего: Объявление переменных - заметил, что для нормальной работы нужно сначала объявлять более крупные (Дабле, Реал) и по нисходящей к более коротким (Байт). Типы привожу условные. Если же все вперемешку были большие проблемы - точно не помню, но вроде надо было, чтобы переменная начиналась с границы слова. В современных версиях Пасика это уже исправлено?
#67 by GrayT
какой хитрый транслятор....
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С