Nim语言:Pascal的语法,Python的缩进
http://nim-lang.org/
德国人Andreas Rumpf的作品,原因是他对过去使用的每种语言都不满意(Pascal也不满意?)。以前叫Nimrod语言,从0.96版本开始改名为Nim。它在2008-08-22发布了第一个公开版本0.6.0,也是第一个可以自编译的版本。目前处于pre-1.0阶段。从1.0开始将不会再有不兼容的语法(breaking changes)。它的其中一个目标是,保证编译器尽可能的有效,几乎与C/C++速度一样快。它的asyncdispatch模块允许你做有效的Web服务器程序,并且内建线程池。
它有以下特点(仅举例一小部分):
1.并发模型
2.深度拷贝
3.procCall 得到多个相似方法
4.experimental模块化
5.编译器支持混合语法:Objective C / C++ / C,通过importCpp和importObjc导入
6.使用自动证明技术,自动并发多线程,而不需要锁
7.生成原生代码,不需要虚拟机。自带快速垃圾收集器。
8.可以直接操作硬件
9.内建动态方法,并可以没有VPT虚拟表
10.自动删除无效代码
11.可运行于 Windows, Linux, BSD and Mac OS X,但只提供了二进制Windows版本下载,其它平台要自己编译。
12.Nim可以产生C++或者Objective C的代码
13.已经绑定到GTK2, the Windows API, the POSIX API, OpenGL, SDL, Cairo, Python, Lua, TCL, X11, libzip, PCRE, libcurl, mySQL and SQLite
下载:
http://nim-lang.org/download/nim-0.10.2_x32.exe
http://nim-lang.org/download/nim-0.10.2.zip
最最关键的,它的FAQ中提到:为什么要再发明一门新语言?回答是:Nim是非常稀少的可编程静态类型语言,它可以产生原生二进制代码(这样的语言甚至更少),不需要运行库和解释器。
其次关键的,是根据什么语言的影响来设计的?回答是:按照顺序:Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon
第三关键的,它采用MPL许可证,目前托管于GITHUB上,大家可以任意修改和fork。
Nim语言:Pascal的语法,Python的缩进的更多相关文章
- 学习Nim语言.rar(nim语言中文教程下载)
学习Nim语言 nim 语法上类似python ,是一门静态编译型语言,nim 使用空格缩进标示语句块的开始和结束, 喜欢python风格的程序员应该也会很容易适应和喜欢nim的风格. nim语言官方 ...
- python编程语言缩进格式
python的缩进格式是python语法中最特别的一点,很多已经习惯了其他语言的朋友再去学python的话,开始会觉的不太 习惯. 怎么看怎么都觉的别扭,也有一些朋友因为这个特别的格式与python失 ...
- Python代码缩进与测试模块
一.Python代码缩进 Python 函数没有明显的 begin 和 end ,没有标明函数的开始和结束的花括号.唯一的分隔符是一个冒号 ( : ),接着代码本身是缩进的. 例如:缩进 bui ...
- tn文本分析语言(二) 基本语法
tn是desert和tan共同开发的一种用于匹配,转写和抽取文本的语言.解释器使用Python实现,代码不超过1000行. 本文主要介绍tn的基本语法.高级内容可以参考其他篇章.使用这样的语法,是为了 ...
- 【Python⑥】python的缩进,条件判断和循环
缩进 Python的最大特色是用缩进来标明成块的代码. 这点和其他语言区别很明显,比如大家熟悉的C语言里: ) { num+=; flag-=; } 而在python中: if flag>= 0 ...
- python代码缩进
习惯了java,c++之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩 ...
- 终于懂了:Delphi的函数名不是地址,取地址必须遵守Object Pascal的语法(Delphi和C的类比:指针、字符串、函数指针、内存分配等)good
这点是与C语言不一样的地方,以前我一直都没有明白这一点,所以总是不明白:函数地址再取地址算怎么回事? ------------------------------------------------- ...
- Ubuntu vim显示行号语法高亮自动缩进
配置文件名为Ubuntu vimrc在Fedora中vim的配置文件存放在/etc目录中,配置文件名为Ubuntu vimrc在终端 输入以下命令来编辑Ubuntu vimrc配置文件:sudo vi ...
- Python 的缩进是不是反人类的设计?
前些天,我写了<Python为什么使用缩进来划分代码块?>,文中详细梳理了 Python 采用缩进语法的 8 大原因.我极其喜欢这种简洁优雅的风格,所以对它赞美有加. 然而文章发出去后,非 ...
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
随机推荐
- 分享:Perl打开与读取文件的方法
在Perl中可以用open或者sysopen函数来打开文件进行操作,这两个函数都需要通过一个文件句柄(即文件指针)来对文件进行读写定位等操作. Perl打开与读取文件的方法,供大家学习参考.本文转自: ...
- ASP.NET中的母版页机制
项目中用到了母版页,由于好长时间没用了,不太熟悉起原理,在网上找了一下: http://www.cnblogs.com/_zjl/archive/2011/06/12/2078992.html 有时间 ...
- Requests库的几种请求 - 通过API操作Github
本文内容来源:https://www.dataquest.io/mission/117/working-with-apis 本文的数据来源:https://en.wikipedia.org/wiki/ ...
- 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础
第一篇 Selenium 和WebDriver工具篇 第一章 自动化测试基础 1.1 初识自动化测试 自动化测试有两种常见方式 1.1.1 代码驱动测试,又叫测试驱动开发(TDD) 1.1.2 ...
- 关于python的环境变量问题
我的ubuntu安装python后,查看所有的环境变量,发现没有PYTHONPATH?对我使用python没太大影响,自己写的模块的路径问题有很多方法解决.但是现在我想将我写的模块放在一个包里,要用到 ...
- linux 标准io笔记
三种缓冲 1.全缓冲:在缓冲区写满时输出到指定的输出端. 比如对磁盘上的文件进行读写通常是全缓冲的. 2.行缓冲:在遇到'\n'时输出到指定的输出端. 比如标准输入和标准输出就是行缓冲, 回车后就会进 ...
- static与全局与局部变量的区别
转自:http://www.cnblogs.com/lzjsky/archive/2010/11/19/1882064.html 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变 ...
- Query execution was interrupted, max_statement_time exceeded
版本:5.6.16 群里看见一个问题,在备份的时候,报如下错误:[root@B28-19-75 bak]# mysqldump -root -p --single-transaction --mast ...
- 多路选择器(multiplexer)简介
1.多路器简介 简称:多路器 功能:多输入 单输出 组合逻辑电路 2.verilog代码实现: module Mux_8(addr,in1,in2,in3,in4,in5,in6,in7,in8 ...
- 【转载】OpenStack Swift学习笔记
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:崔炳华 原文地址:http://blog.csdn.net/i_ch ...