(no subject)
May. 10th, 2017 11:26 amКлассическое определение: "Структурные языки программирования отличаются от "неструктурных" отсутствием оператора goto", технически правильно, но по-существу тавтологично.
Отличие между этими классами языков носит более глубокий характер и располагается в области описания программ. Структурные языки предоставляют структурное (древовидное со слеенными вершинами) описание программы наравне с традиционным последовательным перечислением - единственно доступным для "неструктурных". Разграничение функциональных частей программы в "неструктурных" языках, как раз таки и осуществляется оператором goto. Однако разграничение это существует не на уровне представления (языка), а на уровне семантики программы. Развитие теории трансляции на основе формальных грамматик, позволило преодолеть этот досадный момент, вызывавший столь сильный диссонанс у теоретиков программирования.
Отличие между этими классами языков носит более глубокий характер и располагается в области описания программ. Структурные языки предоставляют структурное (древовидное со слеенными вершинами) описание программы наравне с традиционным последовательным перечислением - единственно доступным для "неструктурных". Разграничение функциональных частей программы в "неструктурных" языках, как раз таки и осуществляется оператором goto. Однако разграничение это существует не на уровне представления (языка), а на уровне семантики программы. Развитие теории трансляции на основе формальных грамматик, позволило преодолеть этот досадный момент, вызывавший столь сильный диссонанс у теоретиков программирования.