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