RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Может я не прав, но..


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Игорь Козин
To : Alexander Conon
Subj : Может я не прав, но..

> >> >> что в качастве базового языка был взят цэ.
> >> >цэ был взят потому, что это
> >> >1) самый распространенный язык, имеющийся под любую платформу
> >> >2) позволяет делать довольно низкоуровневые вещи,
> >> >без чего OS не обходится
> >> ровно то же самое можно сказать и о фортране
> >Прошу прощения, это о каком фортране идет разговор? FORTRAN-4, FORTRAN-77,
> это разве не одно и то же?

Ну-у, батенька Вы даете. Совсем нет... Вот, специально на Wiki залез посмотреть потому как почуял бесовщину когда начал ниже примеры приводить. Одно из серьезных изменений сделаных в 77-ом - "Block IF statement, with optional ELSE and ELSE IF clauses, to provide improved language support for structured programming". До этого приходилось писать что-то типа:
IF (a+b) THEN 10, 10, 20
10 c (a+b)<=0
...
GOTO 30
20 c (a+b)>0
...
30

или

IF (a.lt.b) THEN GOTO 10
c "FALSE" часть
...
GOTO 20
10 c "TRUE" часть
...
20

И вот на нашей ЕС-1030 или 1040 (так кажись) именно такой Фортран 4 и стоял... Это к вопросу ниже о "прозрачности" GOTO ...

>
> >FORTRAN-90?
> про это разговора не было

Вот потому я и спрашивал о КАКОМ Фортране идет речь, потому как Фортраны разные бывают. А кстати, почему 90 не рассматривается? А ведь есть еще 92/2003 и даже (вот ересь-то) 2008. Забавно, кстати как это все в сторону нелюбимого C++ мигрирует. Так вот, о КАКОМ Фортране мы тут разговор ведем?

>
> >В первых двух я что-то ничего такого не припомню.
> реализация для пк или для ес-эвм?
>

О-О-О-О. Вот она, ключевая фраза - "в какой реализации"? Конечно, низкоуровневое програмирование разной степени удобства возможно на любом языке. Все зависит от наличия библиотек. Я практически не припомню языка в котором были бы "зашиты" аппаратно-зависимые вещи. Ну, если не считать весьма всецифических вещей типа массивов Port[] и PortW[] (так кажется) в Turbo Pascal. А так никто не мешает иметь во внешней Фортрановской библиотеке функцию типа WRITE_PORT. Так вот, одним из достоинств раннего "C" (IMHO) была весьма развесистая СТАНДАРТНАЯ библиотека. К тому же достаточно хорошо (ни в коем случае не говорю идеально) проработаная на предмет нужности программисту при написании системных "штучек". А вот в Фортране СТАНДАРТНАЯ библиотека была "заточена" совсем на другое - на быстрые вычисления. Всяческие же нестандартные расширения имеют тенденцию плодится и развиваться в абсолютно несовместимые вещи.

> >> >> если даже сами поклонники цэ говорят о том
> >> >> что им трудно разобраться в собственных исходниках
> >> >> то не нужно удивляться тому что в результате получается
> >> >> система на подпорках и веревочках.
> >> >система на подпорках получается из-за того, что изначальная парадигма
> >> >системы оказалась несовместима с реальной жизнью
> >> а можно ли думая на цэ создать правильную парадигму?
> >Ну-у-у... Это IMHO во многом зависит от стиля автора...
> >Если автор неотчетливо мыслит, то и исходники будут соответственные.
> >Люди не на C/C++ думают. Язык это все-таки инструмент, а не образ мысли.
> то-то и оно что и образ мысли тоже.
> ты видать начало пропустил.

НЕТ. Во-первых, читал с самого начала. Во-вторых, не согласен, что язык - образ мысли... Ну скажите, и на каком же языке мне мыслить прикажете - PASCAL, C, C++, C# (не к столу будь помянут), LabView :(, VB, ASM, PHP, REXX? А еще приходилось на SQL, FORTH, FORTRAN, Matlab, TeX (не пробовали макро писать?). С моей точки зрения в них во вех больше общего, чем различий. Если человек структкру программы может себе представить в терминах, ну не знаю, блок-схемы, что-ли, то не все ли равно какой язык. Вот другая вещь очень сильно на мозги давит - после любого объектно-ориентированого языка (того же Turbo Pascal) работа в языке не поддерживающем объектную модель - сплошное мучение. Все так и наровишь объект создать и его сугубые свойства внутри от всех спрятать и не передавать в функцию каждый раз 99 параметров :(

>
> >> >> создавался он как язык высокого уровня
> >> >> позволяющий после компилляции получать апликухи
> >> >> не уступающие в скорости апликухам написанным на асме.
> >А по времемени разработки он тоже ASM-у не уступает :)?
> :)
> а если серьезно так скорость разработки у него точно на высоте.
> это одной из его задач было.

Разработки чего, метода наименьших квадратов? К сожалению для Фортрана большая часть нынешних прикладных программ вообще не нуждаются в мощных вычислениях. У них другие проблемы - окошки там разные, кнопочки, на мышку вовремя среагировать... :( Не бейте, дяденьки, я ж не говорю про программы типа FLUENT (хотя и они потихоньку на C++ переползают :( судя по версиям виденным пару лет назад).

>
> >И вООще, FORTH (ФОРТ) - rulezz forever :) Еще круче фортрана...
> или жуть форева... но намек понял.
> от личных предпочтений действительно никуда не деться.
> правда и для определения предпочтений
> и для оценки скорости разработки / эффективности компилляторов /...
> нужно таки попробовать а не просто посмотреть по диагонали.

Есть такое дело - личные предпочтения. А про FORTH это было шуткой только наполовину... На нем и вправду оч-чень эффективный код получается. И скорость разработки вполне приличная. Видал я как коллега ваял, да и сам немного ковырялся. Вот только немногие на нем работающий код писать могут. Мозги нужно иметь слегка насторону, потому у меня он и не прижился.

>
> >> >> и это удалось. более того фортран-компилляторы
> >> >> до сих пор удерживают лидерство в этом плане.
> >А какой процент задач ныне ДЕЙСТВИТЕЛЬНО требует самой высокой
> >эффективности?
> глядя на окружающую действительность так создается впечатление
> что все 100%. софтины все жирнее и тормознее...
> а уж кернелу эффективность нужна как никому!
> тут уж определенно никаких сомнений.

Давайте не будем говорить про бездарно написаные программы. Я с легкостью берусь затормозить программу раз примерно в 100 используя, например экранный контрол для хранения промежуточного резульата цикла (реальный пример из моей бывшей конторы, кстати :( ). Но это не проблема конкретного языка, а людей которые плохо понимают что они делают.
А вот что там последние тесты говорят? Какой выигрыш у Фортрана по сравнению с последними C++ компиляторами? В конкретных цифрах?

>
> >А ведь эта эффективность обычно получается за счет
> >снижения скорости/надежности разработки поскольку повышение стоимости
> >разработки является практически нереальной альтернативой :(
> goto 1
>
> >> >> вобщем получился язык прозрачный
> >> >> и понятный не только компиллятору но и програмеру.
> >Про прозрачность фортрана я вообще бы не стал заикаться.
> >От одних только GOTO
> а с чего это goto вдруг стали непрозрачными?
>
> 1 :)

Да очень просто. Самое первое, что приходит в голову:

"C":

if( ){
foo();
foo1();
else { // - вот тут скобочку закрыть забыли...
foo2()
}

"F" (прошу прощения если не совсем точно, лет д-цать Фортраном не пользовался)

IF THEN 10, 10, 30
10 FOO
FOO1
GOTO 40 - представьте себе тут GOTO потерялось.
30 FOO2

Так вот не надо наверное объяснять, что любой самый убогий C-шный компилятор завопит, что вы скобочку забыли закрыть. А вот с точки зрения Фортрана (по крайней мере FORTRAN-IV, в котором конструкции IF THEN ELSE не поддерживаются) отсутствие "GOTO 40" ошибкой не является...


> >и COMMON блоков можно умишком тронуться.
> язык создавался как способный выжать из железа максимум.
> а уж будет програмер трудиться экономя ту же память
> или решит что ее у него и так навалом - так это сам програмер и решает.

Здрасьте, мы же тут об эффективности. А Вы "будет программист или нет". Если не будет, то хорошо, а если будет, то тут-то и тронется пытаясь отследить что на что наезжает... Вот тут-то динамическое распределение памяти (см. Фортран 90) и помогает.
И в "C" никто не заставляет программиста некорректные (рискованые) методы использовать. Хотя и есть возможность. И, кстати, а чем по-Вашему "С" таки идеологически хуже Фортрана? Конкретные примеры, можно "в студию"?

>
> >Про локальные переменные и модульность может кто человеку подскажет
> >где "подоробнее" есть? Не устраивать же тут ликбез.
> вотжышблин...
>
Прошу прощения, не хотел обидить. Похоже Ваш вопрос надо было читать "а почему вы считаете что в Фортране этого нет?" а я прочитал "а что это такое?"...


Tue 10 Jul 2007 05:35 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.8.1.4) Gecko/200




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.