Loglan'82:面向对象和分布式编程的编程语言
Loglan'82 项目
Z Lem
Loglan'82 是一种为面向对象和分布式编程而设计的编程语言。它具有许多特性,使其成为超越其他编程语言的工具:
- 它拥有一个独特的安全高效的对象管理系统,请参阅 Safe dealocation.
- 它提供类模块(class),此外,它还允许声明协作对象模块,即 coroutines 和线程模块(process)。 不仅可以创建类的对象,还可以创建具有 fibres 的协程对象和具有 threads 的进程对象,也称为代理。
- Loglan 的虚拟机可以通过互联网连接成一个虚拟的多处理器计算机。 这允许以受控方式在处理器之间分配程序的计算。
- 进程对象(代理)可以分配在虚拟机网络的不同节点上,也可以分配在同一台机器上。 这意味着 Loglan 使用一个模型来处理并发和分布式计算。(减少学习成本)。
- Loglan'82 提供了一个原始的、完全面向对象的通信和同步协议,称为代理方法的 alien call。
- 进程的每个对象,即代理,都可以创建自己的协程对象系统并对其进行管理。
- Loglan'82 还有其他有趣且有用的功能。 尝试发现它们!
我们希望这些页面上包含的信息对以下人员有帮助:
-
有抱负的程序员 -- 因为 Loglan'82 提供了其他编程语言中不为人知的几种构造和解决方案:
- 是否应该管理对象的内存并避免危险的 dangling pointers 现象? 尝试使用 kill 指令。
- 如果您正在创建的软件使用并发或分布式计算,或者这两种模型的组合 -- 选择 Loglan'82。 因为它为所有这些非顺序计算变体提供了一个模型。 这样您将降低编程成本。
- 请花时间了解 alien call protocol。 这是我们的合作者 Bolek Ciesielski 的一项原创发明。 它是从线程 B 调用线程 A 的方法的完全面向对象的方式。
- 对于那些正在创建准并发计算(通过 fibres)的人,我们提供了一个更丰富的类版本,即 coroutines。
-
教师 -- Loglan'82 是一个不错的选择:
- 如果您的目标是展示面向对象编程的所有工具和方法,并且避免在需要说明面向对象编程的后续工具时从一种编程语言切换到另一种编程语言。
- 如果您希望构建一个更大的项目,其中包含数据结构(类)的规范、规范的实现以及针对规范的实现验证。
-
研究人员 -- 因为该语言融合了一些非平凡问题的科学研究成果:
-
是否可以将两种程序模块创建方法:嵌套和继承结合起来? 在我们同意接受嵌套和继承之前,我们必须回答几个基本问题:
- 如何确保标识符的应用发生与该标识符声明的正确发生之间的静态链接?
- 如何确定给定类的直接超类?
- 是否可以通过函数(过程)扩展类?
-
对象管理是否必然会导致悬空引用的现象?
-
垃圾回收的效率如何?
-
是否可以以安全有效的方式释放不再需要的对象?
-
如何以一致的方式定义协程的语义?
-
目录
- 1 Documentation of Loglan'82
- 2 Selected examples
- 3 Compilers
- 4 Fundamental research
- 5 Axiomatic definitions of sublanguages of Loglan'82
Documentation of Loglan'82
您可以从 mikromanual 开始。 如有疑问,请查看 Report of Loglan'82 language。 user manual 中解释了诊断信息和一些有用的提示。 如果您可以阅读波兰语,请查找 podręcznik Loglanu Loglan 的语法紧凑而清晰,请参阅 Quick reference card. 比较各种面向对象编程语言 Comparison of object programming languages.
Selected examples
Umieszczamy tu kilka wybranych przykładów programów napisanych w Loglanie'82 Program multiplying matrices, algorith of Winograd
[Media:Winograd.pdf](https://lem12.uksw.edu.pl/wiki/</images/e/e2/Winograd.pdf> "Winograd.pdf")
Coroutines
[Media:MERGE.pdf](https://lem12.uksw.edu.pl/wiki/</images/6/67/MERGE.pdf> "MERGE.pdf") - program i jego omówienie
[Media:TREEGEN.pdf](https://lem12.uksw.edu.pl/wiki/</images/3/32/TREEGEN.pdf> "TREEGEN.pdf") - program i dowód poprawności
Compilers
目前 (2017 年) 有在 Linux 和 Windows 平台上工作的 compilers。
Fundamental research
Loglan'82 具有坚实的基础。 它融合了相当数量的智力贡献。 下面,我们列出了一些在定义该语言之前必须解决的问题:
- 是否可以管理对象,以便以安全有效的方式释放不必要的对象? 没有悬空引用现象。 bezpieczna dealokacja obiektów
- 如何仅通过知道基类名称 A 来确定给定类 B 的基类? 请注意,一个程序可能包含许多同名的类。 在 Loglan'82 (和 Java 中) 这是可能的,因为该语言允许模块的嵌套和继承。
- 如何管理协程对象? 在某些语言中,协程的语义是模糊的,甚至是不一致的。 在其他一些语言中,协程对象和过程的激活记录可能无法协作,从而导致明显的损失。
- 如何管理进程的活动对象? (进程模块是类模块的另一个扩展)。
- 哪些并发和分布式计算的通信和/或同步工具适合于进程的活动对象?
- 如何管理分布式计算?
迄今为止获得的一些结果可能会在 Java 编程中找到应用。 也许还有更多的应用程序。 有关更多信息,请参见 Fundamental research。
Axiomatic definitions of sublanguages of Loglan'82
在这 ... Źródło „http://lem12.uksw.edu.pl/index.php?title=Loglan%2782_project&oldid=2333” Kategoria: