当前位置:  开发笔记 > 编程语言 > 正文

有人知道任何静态类型的脚本语言吗?

如何解决《有人知道任何静态类型的脚本语言吗?》经验,为你挑选了1个好方法。

我即将为一个业余爱好项目启动一个基于LFS的Linux发行版.我计划做一些非标准的任务,其中大部分都涉及更改发行版中的几乎所有脚本.(主要是init脚本,但我也会编写一套简单的包管理器脚本.)因为我要远离常规,因为我从未成为动态类型语言的粉丝(perl, python,bash和其他都很好,但不是我的强项),我想知道是否有人知道实际上已声明变量的解释语言.



1> sth..:

通常,静态类型语言是编译语言.我想原因是,对类型的静态分析相当昂贵,你必须深入了解你正在处理的所有代码.完成后,将所有信息写入文件会感觉很浪费,这样您下次就不必再这样做了.所以你很快就会得到一个编译语言.

另一方面,将编译语言转换为"未编译"的语言相当容易.您只是不将编译结果存储在任何位置,而是直接执行它们.我知道提供这样一个包装器的一个编译器是GHC,标准的Haskell编译器.您可以添加#!/usr/bin/runhaskell到源文件,然后直接执行它们.由于你计划远离常态,Haskell看起来非常合适;).但是期望脚本的启动时间相当长,因为所有"编译时"分析和优化都不是免费的.

Haskell不是用于shell脚本的,它是一种函数式语言,所以如果你以前从未见过它,可能需要一些时间来习惯.但它的语法开销很小,函数式语言的强度也是抽象的,所以我不明白为什么你不能创建一个让shell脚本变得有趣的库.甚至还有一些实验性的Haskell shell,但它似乎更像是一个概念验证,而不是一个真正的解决方案.

一般来说,我会说所有类型分析的开销很大,但我建议你选择你最喜欢的静态类型编译语言,并寻找一个类似于runhaskell执行其中编写的脚本的包装器.


没有*编译语言*.每种语言都可以由编译器或解释器实现.事实上,绝大多数编程语言至少有一个实现.此外,大多数现代语言实现实际上**编译器*和*解释器.既然你提到了Haskell:Hugs是一个Haskell解释器.V8是一个JavaScript编译器.微软的PowerShell是一个编译器.几年前,Bash开发人员正在考虑切换到已编译的实现.HotSpot JVM既是解释器又是编译器
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有