Re: Реализация динамических массивов
От: Privalov  
Дата: 06.10.19 17:58
Оценка: +1
Здравствуйте, кт, Вы писали:

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


кт>Вот как здесь


Зачем это в язык запихивать? Просто написать, как в Сях или Паскале, нельзя?
Да еще код такой, что попробуй разберись.

Вот эти объявления попробуй прочитай. Хотя бы не сокращали. Стоило писать DECLARE вместо DCL,
DCL (P1,P2,P3)      PTR;             // УКАЗАТЕЛИ НА МАТРИЦЫ
DCL A1(5,4)         FLOAT BASED(P1), // СТАТИЧЕСКАЯ МАТРИЦА А1
    B1(4,3)         FLOAT BASED(P2), // СТАТИЧЕСКАЯ МАТРИЦА B1
    C1(5,3)         FLOAT BASED(P3); // СТАТИЧЕСКАЯ МАТРИЦА C1
DCL (M1,N1,Q1)      FIXED(31);       // ЗАДАВАЕМЫЕ ГРАНИЦЫ
DCL (I,J)           FIXED(31);       // РАБОЧИЕ ПЕРЕМЕННЫЕ

Думаю также, мало кто знает, что такое BASED. Сишные указатели легче освоить.

Псевдопеременных, кроме PL/1, больше нет нигде. Знаки вопроса в начале каждой строки я вижу впервые.
?INDEX(1,2)=M; ?INDEX(2,2)=N;
?RET(ADDR(A));                    // ИЗМЕНЯЕМ КОМАНДЫ ДЛЯ A
?INDEX(1,2)=N; ?INDEX(2,2)=Q;


Из текста я не понял, эти массивы в PL/1 подобны векторам или память под них выделяется один раз? Если один, то такие массивы [allocatable] есть в фортране 90. Хотя тут что-то другое. размеры передаются в процедуру извне, то есть заранее известны.

Как все же здорово, что старшие коллеги предпочли Фортран!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.