В области компьютерного программирования Franz Lisp — это прекращенная система языка программирования Lisp , написанная в Калифорнийском университете в Беркли (UC Berkeley, UCB) профессором Ричардом Фэйтманом и несколькими студентами, основанная в основном на Maclisp и распространяемая через Berkeley Software Distribution (BSD) для Миникомпьютер VAX корпорации Digital Equipment Corporation (DEC) . [1] Благодаря популярности пакета BSD, Franz Lisp был, вероятно, наиболее широко распространенной и используемой системой Lisp в 1970-х и 1980-х годах. [2]
Название — игра слов в честь композитора и пианиста Ференца Листа .
Он был написан специально для запуска системы компьютерной алгебры Macsyma на VAX. Проект начался в конце 1978 года, вскоре после того, как Калифорнийский университет в Беркли получил свой первый VAX 11/780 (названный Ernie CoVax в честь Эрни Ковача , первой из многих систем с каламбурными названиями в UCB). Franz Lisp был доступен бесплатно на образовательных сайтах, а также распространялся на Eunice — эмуляторе Unix Беркли , работавшем на VAX VMS .
На момент создания Франца Лиспа система компьютерной алгебры Macsyma работала в основном на DEC PDP-10 . Ограниченное адресное пространство этого компьютера вызвало трудности. Попытки решения проблемы включали портирование Maclisp на машины Multics или Lisp , но даже в случае успеха это были бы решения только для Массачусетского технологического института (MIT), поскольку эти машины были дорогими и необычными. Franz Lisp был первым примером среды, в которой большие программы Lisp можно было запускать вне среды Lisp-машин; Macsyma тогда считалась очень большой программой. После портирования на Franz Lisp Macsyma распространялась примерно на 50 сайтах по лицензии, ограниченной интересом MIT сделать Macsyma собственностью . VAX Macsyma, работавшая на Franz Lisp, называлась Vaxima. Когда компания Symbolics Inc. купила коммерческие права на Macsyma у MIT для продажи вместе со своими машинами Lisp, она в конечном итоге была вынуждена продавать Macsyma также на компьютерах DEC VAX и Sun Microsystems , выплачивая гонорары Калифорнийскому университету за использование Franz Lisp. .
Другими реализациями Lisp для VAX были NIL от MIT (никогда не полностью функциональный), Portable Standard Lisp от Университета Юты , VAX Lisp от DEC, Interlisp -VAX от Xerox и Le Lisp .
В 1982 году начался порт Franz Lisp на процессор Motorola 68000 . В частности, он был портирован на прототип Sun-1, созданный Sun Microsystems , который работал под управлением варианта Unix Berkeley Software Distribution (BSD) под названием SunOS . В 1986 году в Университете Пердью Франц Лисп был портирован на платформу CCI Power 6/32 под кодовым названием Tahoe .
Основными сотрудниками Франца Лиспа в Калифорнийском университете в Беркли были Джон К. Фодераро, Кейт Склоуэр и Кевин Лэйер.
Компания Franz Inc. была создана для поддержки Franz Lisp основателями Ричардом Фейтманом , Джоном Фодераро, Фрицем Кунце, Кевином Лэйером и Китом Склоуэром, которые все были связаны с Калифорнийским университетом в Беркли. После этого разработка и исследование Franz Lisp продолжались в течение нескольких лет, но принятие Common Lisp значительно снизило потребность в Franz Lisp. Первым продуктом Franz Inc. был Franz Lisp, работающий на различных рабочих станциях на базе Motorola 68000 . Порт Franz Lisp был даже сделан на VAX VMS для Национальной лаборатории Лоуренса Беркли . Однако почти сразу же компания Franz Inc. начала работу над своей реализацией Common Lisp, Allegro Common Lisp .
Интерпретатор Franz Lisp был написан на C и Franz Lisp. Он был загружен исключительно с использованием компилятора C. Компилятор Франца Лиспа, полностью написанный на языке Франца Лиспа, назывался Лист, завершая каламбур от имени композитора Ференца Листа .
Некоторыми примечательными особенностями Franz Lisp были массивы в Lisp, взаимозаменяемые с массивами в Fortran , и интерфейс внешних функций (FFI), который позволял взаимодействовать с другими языками на двоичном уровне. Многие методы реализации были заимствованы у Maclisp: организация памяти bibop (BIg Bag Of Pages), небольшие целые числа, уникально представленные указателями на фиксированные значения в полях, и быстрая арифметика.
Он превратился в один из наиболее распространенных диалектов Лиспа на машинах Unix.