LINUX.ORG.RU

[фейл] компилятор/интерпретатор с пропуском ошибок

 


0

1

Есть организация, в которой простые пользователи (не программисты) пишут скрипты.
Там финансовые расчеты, так что никому скрипты писать не нравится, но _приходится_.

Но тут нас поджидает фейл. Язык, в котором всё четко, воспринимается пользователем как ущербный. Бинарный ответ «скрипт работает либо не работает», «скрипт написан синтаксически правильно либо синтаксически неправильно» тоже воспринимается как ущербный.

Во многом это происходит от желания набросать несколько строчек, и посмотреть, какую из строчек компьютер посчитает правильной:

prynt A
prrint A
pryuyuyint A
print A

Ся остановится на первой ошибке и не будет ничего дальше выполнять. Пользователю придется стирать первую строчку, перезапускать скрипт, снова стирать первую строчку, перезапускать скрипт, итп. Учитывая что никто не знает (и особо не стремится узнать) какие есть допустимые конструкции, совершать этот процесс (приписал-запустил-ошибка-приписал-запустил-ошибка) пользователям приходится лютое количество раз.


По многочисленным просьбам/стонам/мольбам, вопрос: есть ли язык, который может шкипать синтаксически неверные конструкции, как будто этой строчки и не существовало вообще? (лучше всего, с подробными ворнингами в stdout). Типа как в ObjectiveC можно позвать то, чего нет, и это не будет ошибкой вообще — но только применительно вообще к любой неправильной конструкции.

типа,

print A
prynt B // не выведется на экран, нет такой функции
print(print C - print D) //не выведется на экран, принты нельзя вычетать



★★★★☆

есть ли язык, который может шкипать синтаксически неверные конструкции, как будто этой строчки и не существовало вообще? (лучше всего, с подробными ворнингами в stdout).

CL

gensym ★★
()

Maple так себя ведет. Работает с «исполнительными группами», на ошибке не останавливается, переходит к следующей группе, но матерно ругается в вывод.

Axel
()
Ответ на: комментарий от r2d2

Финансовые расчёты? Шкипать? Ну-ну...

хозяин - барин же.

gensym ★★
()

Вы не поверите, bash.

anonymous
()

Внезапно, любой интерпретируемый язык с динамической типизацией так себя ведёт (по крайней мере, должен).

простые пользователи (не программисты) пишут скрипты. ... Язык, в котором всё четко, воспринимается пользователем как ущербный. Бинарный ответ «скрипт работает либо не работает», «скрипт написан синтаксически правильно либо синтаксически неправильно» тоже воспринимается как ущербный.

Люди, не понимающие выполняемых ими действий и используемых инструментов, тоже воспринимаются как ущербные.

schizoid ★★★
()

вопрос: есть ли язык, который может шкипать синтаксически неверные конструкции, как будто этой строчки и не существовало вообще?

на моей памяти так поступал Action Script, по поводу чего было много «крипичёв» произведено благодарными разработчиками во время отладки

shty ★★★★★
()

http://lisper.ru/pcl/beyond-exception-handling-conditions-and-restarts

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

pseudo-cat ★★★
()

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

Пользователю придется стирать первую строчку, перезапускать скрипт, снова стирать первую строчку, перезапускать скрипт,

Сделайте нормальный парсинг и семантический контроль.

tailgunner ★★★★★
()

А мне казалось, что си компиляторы и не останавливаются, в отличие от паскаля.

Ява показывает все ошибки, например. Но там парсинг и проверка очень простые.

note173 ★★★★★
()

А матерный выхлоп эти ущербные пользуны тем более читать не будут. В результате у них никогда ничего не будет работать правильно.

Лучше дай им среду, где сильный автокомплит.

legolegs ★★★★★
()

А что, угрозы уволить не действуют? :)

Eddy_Em ☆☆☆☆☆
()

php же! получается хороший, годный быдлокод. Который даже работает. Недавно же обсуждали array -> string...

drBatty ★★
()

При реализации же возникнет проблема отделения одной конструкции от другой. Навроде

print ((a print b
Считать print b валидным кодом и исполнять, или же это просто попытка написать какую-то фигню в скобках?

unC0Rr ★★★★★
()
Ответ на: комментарий от stevejobs

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

unC0Rr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.