Jump to content

язык программирования SAC

САК
Парадигма массив , функционал
Разработано Свен-Бодо Шольц, Клеменс Грелк и др.
Разработчик Исследовательская группа СаК
Впервые появился 1994 год ; 30 лет назад ( 1994 )
Предварительный выпуск 1.3.3-1079-1 (14 июня 2023 г .; 13 месяцев назад ( 14.06.2023 ) ) [±]
Дисциплина набора текста статический , сильный
Язык реализации С и САК
ТЫ POSIX-совместимая UNIX
Лицензия Бесплатное программное обеспечение [1]
Расширения имен файлов .мешок
Веб-сайт www .sac-home .org
Под влиянием
АПЛ , СИЗАЛЬ , С

SAC (Single Assignment C) — это строгий чисто функциональный язык программирования , конструкция которого ориентирована на потребности числовых приложений. Особое внимание уделяется эффективной поддержке обработки массивов посредством параллелизма данных . Проблемы эффективности, по сути, двояки. С одной стороны, эффективность разработки программ должна быть повышена за счет возможности специфицировать операции с массивами на высоком уровне абстракции . С другой стороны, эффективность выполнения программ, то есть производительность программ во время выполнения с точки зрения потребления времени и памяти, по-прежнему должна быть достигнута с помощью сложных компиляции схем . Только если последнее удается, стиль спецификаций высокого уровня действительно можно назвать полезным.

Чтобы облегчить компиляцию в эффективно исполняемый код, некоторые функции функционального языка, которые не считаются существенными для числовых приложений, например, функции высшего порядка, полиморфизм или отложенное вычисление , (пока) не поддерживаются SAC. Их можно найти в функциональных языках общего назначения, например Haskell , Clean , Miranda или ML .

Чтобы преодолеть проблемы с принятием, с которыми сталкиваются другие функциональные языки или языки на основе массивов, предназначенные для приложений с интенсивным числом/массивами, например SISAL , NESL , Nial , APL , J или K , особое внимание уделяется облегчению перехода от C / Fortran -подобного программирования. среду для SAC.

Более подробно, основные цели разработки языка SAC заключаются в следующем:

  • предоставить чисто функциональный язык с синтаксисом, очень похожим на синтаксис C, чтобы облегчить для большого сообщества программистов переход от императивного к функциональному стилю программирования;
  • поддержка многомерных массивов как объектов первого класса;
  • разрешить спецификацию операций с массивами, не зависящих от формы и размера;
  • обеспечивают высокоуровневые операции с массивами, которые освобождают программирование от утомительных и подверженных ошибкам спецификаций начала, остановки и шагов для обхода массива, тем самым улучшая возможность повторного использования кода и производительность программирования в целом.
  • включить систему модулей, которая допускает раздельную компиляцию, отдельные пространства имен и абстрактные типы данных, а также, кроме того, обеспечивает интерфейс для иностранных языков, чтобы обеспечить возможность повторного использования существующего кода;
  • предоставить средства для плавной интеграции состояний и модификаций состояний в функциональную парадигму, основанную на типах уникальности;
  • использовать систему модулей, интерфейс на иностранных языках и интеграцию состояний для создания стандартной библиотеки, которая обеспечивает функциональность, аналогичную функциональности стандартных библиотек C, например, мощные средства ввода-вывода или математические функции;
  • облегчить компиляцию в хост-машинный код, который может быть эффективно выполнен как с точки зрения затрат времени, так и пространства;
  • облегчить компиляцию для непоследовательного выполнения программы в многопроцессорных средах.
  • Шольц, Свен Бодо (1996). реализация функционального C-варианта со специальной поддержкой операций с массивами, инвариантных по форме ] Единственное задание C — проектирование и (доктор философии) (на немецком языке). Институт компьютерных наук и прикладной математики, Кильский университет Кристиана-Альбрехта, Киль, Германия.
  • Грелк, Клеменс (2001). Поддержка мультипроцессора с неявной общей памятью для языка функционального программирования SaC — одно задание C (доктор философии). Институт компьютерных наук и прикладной математики, Кильский университет Кристиана-Альбрехта, Киль, Германия. ISBN  3-89722-719-3 . {{cite thesis}}: CS1 maint: игнорируются ошибки ISBN ( ссылка )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 640fa536ae0ecdc2c72c462c336b881b__1684261740
URL1:https://arc.ask3.ru/arc/aa/64/1b/640fa536ae0ecdc2c72c462c336b881b.html
Заголовок, (Title) документа по адресу, URL1:
SAC programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)