LINUX.ORG.RU

ABCL 1.4.0

 , ,


3

4

ABCL — реализация языка программирования общего назначения Common Lisp, которая работает на JVM (включает интерпретатор и компилятор) и поддерживает JSR-223 (Java scripting API) и, таким образом, может быть встроена в приложения на Java.

Официальный сайт

>>> Информация о релизе

Ответ на: комментарий от tp_for_my_bunghole

Да ты прав, Java не системный язык, значит скриптовый.

системный язык — это тот, на котором можно написать всю систему целиком. в этом смысле Common Lisp, Java, C++, Eiffel — языки описания систем, то есть — системные.

а скриптов — тот, на котором можно задать язык планирования, упорядочивания действий (например: рецепты приготовления блюда, PLANNER, PDDL, денотационная семантика модели акторов, модель Клингера, Timed Diagrams Model ниже, или простой алголоподобный язык описания бота, например тот же КУМИР, ЕРШОЛ, ЛОГО с черепашкой, Scratch, ну и прочая скриптота типа питона, lua и т.п.)

язык С++ — низкоуровневый (Java — тоже), ибо:

«A programming language is low level when its programs require attention to the irrelevant.»

Alan J. Perlis

например, virtual модификатор, отсутствие мультиметодов, невозможность скомпилять форму с произвольным выражением во время компиляции (constexpr — не то, не произвольное).

в этом смысле Common Lisp — самый высокоуровневый язык, поскольку лисп является своим собственным метаязыком.

anonymous ()
Ответ на: комментарий от anonymous

правда, не любую систему можно описать на Java целиком. например, ту же JVM. придётся скатываться в байтодрочерство на каком-то С++. выходит, что Java — не совсем системный язык (смотря какую систему описывать)

вот сишечка в этом смысле — гораздо более системный язык.

anonymous ()
Ответ на: комментарий от tp_for_my_bunghole

Слово «скрипт» изначально из игровой индустрии(когда определяли что будет полностью заскриптованно, и где будет какой-то AI). К языкам программирования имеет опосредованное значение.

а в геймдеве-то скриптота откуда появилась? из голивуда? или из теории фреймов и акторов, и в конечном счёте языка описания алгоритмов этих актёров?

anonymous ()
Ответ на: комментарий от tp_for_my_bunghole

Каким языком является Java? Дай определение.

дурацко-многословным низкоуровневым коболом с батарейками для энтерпрайз кодеманки.

anonymous ()
Ответ на: комментарий от anonymous

про ОГАС В. М. Глушкова, подробнее:

  • «Красная книга» Анатолия Китова
  • Интернет полковника Китова
  • Как погас ОГАС

    нечто вроде бизнес-плана:

    Начиная с 1964 года (времени появления моего проекта) против меня стали открыто выступать ученые-экономисты Либерман, Белкин, Бирман и другие, многие из которых потом уехали в США и Израиль. Косыгин, будучи очень практичным человеком, заинтересовался возможной стоимостью нашего проекта. По предварительным подсчетам его реализация обошлась бы в 20 миллиардов рублей. Основную часть работы можно сделать за три пятилетки, но только при условии, что эта программа будет организована так, как атомная и космическая. Я не скрывал от Косыгина, что она сложнее космической и атомной программ вместе взятых и организационно гораздо труднее, так как затрагивает все и всех: и промышленность, и торговлю, планирующие органы, и сферу управления, и т.д. Хотя стоимость проекта ориентировочно оценивалась в 20 миллиардов рублей, рабочая схема его реализации предусматривала, что вложенные в первой пятилетке первые 5 миллиардов рублей в конце пятилетки дадут отдачу более 5 миллиардов, поскольку мы предусмотрели самоокупаемость затрат на программу. А всего за три пятилетки реализация программы принесла бы в бюджет не менее 100 миллиардов рублей. И это еще очень заниженная цифра.

    Но наши горе-экономисты сбили Косыгина с толку тем, что) дескать, экономическая реформа вообще ничего не будет стоить, т.е. будет стоить ровно столько, сколько стоит бумага, на которой будет напечатано постановление Совета Министров, и даст в результате больше. Поэтому нас отставили в сторону и, более того, стали относиться с настороженностью. И Косыгин был недовлен. Меня вызвал Шелест и сказал, чтобы я временно прекратил пропаганду ОГАС и занялся системами нижнего уровня.

tl;dr либерасты-монетаристы опять задурили всем мозги «мы просто напечатаем ещё больше денег», и не давали кибернетикам нормально работать.

Другие работы Глушкова: http://www.studfiles.ru/preview/4339724/ (о да, DSL такая новомодная идея)

Алгебра алгоритмов, система алгоритмических алгебр Алгебра алгоритмов САА из книжки про программную инженерию

ученики Глушкова также работали над рекурсивной вычислительной машиной подробнее

anonymous ()
Ответ на: комментарий от tp_for_my_bunghole

Java не интерактивный язык(нет REPL), значит всё таки не скриптовый. И не системный.

Это как гриб, имеет признаки как животного так и растения, но не является ни тем ни другим :) Java называют управляемым языком. Это компилированный язык со строгой типизацией, но компилируется он в байткод который исполняется JRE. Можно назвать JRE интерпретатором байткода и это особенность добавляет признаки интерпретируемого языка, а именно возможность менять мир в рантайме через рефлекшен, т.е. изменять поведение программы без её перекомпиляции,

anonymous ()
Ответ на: комментарий от korvin_

И? Что тебя смущает?

... ладно, попробую предельно просто и понятно.

В статье Scripting Language написано, что пример (какого-то, не важно) языка - Embeddable Common Lisp.

В статье Embeddable Common Lisp написано, что Embeddable Common Lisp - это реализация языка Common Lisp.

То есть, в одной статье написано что Embeddable Common Lisp - это язык, а в другой - что это реализация языка. Таким образом, в двух статьях указаны несовместимые факты.

Можно поспорить, что Embeddable Common Lisp - это и язык и реализация языка имеющие одно и то же название, но автор(ы) этих статей так не считают, т.к. ссылка на вторую статью размещена прямо в первой и в контексте, указывающим на то, что имеется в виду одна и та же сущность.

TL;DR: Языка под названием «Embeddable Common Lisp» не существует.

Gentooshnik ★★ ()
Ответ на: комментарий от anonymous

«A programming language is low level when its programs require attention to the irrelevant.»

Alan J. Perlis

Не ожидал от Перлиса такого размытого определения. Из него можно сделать любой вывод, вплоть до «высокоуровневых языков не существует». О чём-то можно было бы говорить если бы хотя бы вместо «irrelevant» было «xxx irrelevant to yyy». Без этого мы можем только предполагать.

Например, если предположить, что речь о Решаемой Задаче, то CL - низкоуровневый, т.к. нужно следить за использованием символов, или решать руками зависимости между файлами сорцов в defsystem. Python тоже не высокоуровневый, т.к., например, часто приходится гадать как лучше положить объектную модель Решаемой Задачи на убогую объектную модель Python, или думать почему компилятор не принимает визуально рабочий код...

Вообще, да, высокоуровневых языков не существует, т.к. синтаксис ЯП никогда не релевантен доменной области Решаемой Задачи.

Gentooshnik ★★ ()
Ответ на: комментарий от anonymous

нихрена. с 1965-го. машина «МИР» академика В. М. Глушкова, Советский Союз.

Да, а помощник машиниста из Таджикистана изобрёл резко автомат который даже рельсу пробивает, а Шмайсер ему помогал, кофе готовил.

tp_for_my_bunghole ()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от anonymous

на котором можно написать всю систему целиком. в этом смысле Common Lisp, Java, C++, Eiffel

Какую систему? C++ всё равно будет использовать готовые библиотеки, так их можно использовать и в Python через ctypes, потом оптимизация модуля с Cython если необходимо.

tp_for_my_bunghole ()
Ответ на: комментарий от anonymous

правда, не любую систему можно описать на Java целиком. например, ту же JVM. придётся скатываться в байтодрочерство на каком-то С++. выходит, что Java — не совсем системный язык (смотря какую систему описывать)

вот сишечка в этом смысле — гораздо более системный язык.


Сомнительное определение. Планировщик (всякое сохранение регистров) на сишке целиком не напишешь. Загрузчик (stage 0) тем более не очень.

evilface ★★ ()
Ответ на: комментарий от Virtuos86

Пан в курсе, что потоки в Питоне действуют в рамках одного процесса, который действительно не распараллелишь на ядра, ибо он неделим?

Да, в курсе. И что в этом хорошего?

PanZagloba ()

REPL для Java

DrJava

(а DrRacket всё равно круче!!!)

anonymous ()
Ответ на: комментарий от PanZagloba

интерпретатор никакого языка не может занимать 15 строк. Ибо в любом языке потребуется описать интерполяцию строк:

язык в котором строковые скаляры/константы не включают в себя интерполяцию хотя-бы символов переноса строки в частности и коды символов вообще - бесполезен, ибо писать сколь либо полезные программы на данном языке будет затруднительно: Любой протокол с внешним миром потребует работы с байтами.

а одна интерполяция строк не уложится в 15 строк. Не говоря уж о чиселках. Математика нужна тем кто пишет что-то на языке? нужна. Следовательно нужно чиселки тоже разгребать.

rsync ★★ ()
Ответ на: комментарий от rsync
data T = S | K | T :. T

s (K :. x :. _) = x 
s (S :. x :. y :. z) = (x :. z) :. (y :. z) 
s (x :. y) = (s x) :. (s y) 
s x = x

eval t | t' == t = t 
       | otherwise = eval t' 
  where t' = s t
GoodRiddance ()
Ответ на: комментарий от rsync

в любом языке потребуется описать интерполяцию строк

Тьюринга на помойку, теперь мы будем доказывать полноту по rsync'у.

GoodRiddance ()
Ответ на: комментарий от GoodRiddance

при чем тут тьюринг?

мы говорим не об абстрактных упрощениях а о реальном мире.

в реальном мире с чего начинается жизнь языка программирования? с ввода-вывода

rsync ★★ ()
Ответ на: комментарий от GoodRiddance

потому большинство проектов в реальном мире не на лиспе, а на пхп/питонах и даже (sic!) Lua

rsync ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.