阅读更多

1顶
3踩

编程语言

原创新闻 Mozilla发布Rust语言编译器v0.1

2012-01-29 16:11 by 资深编辑 luiang1018 评论(4) 有7167人浏览
历经五年多的开发后,Mozilla和Rust社区发布了Rust语言编译器的首个alpha版本——v0.1。Rust是Mozilla开发的一门新编程语言,由Web语言的领军人物Brendan Eich(js之父)、Dave Herman以及Mozilla公司的Graydon Hoare等合力开发。该语言强调了并发性和内存安全,按照计划,其最终可能取代C++成为Mozilla的编译语言——未来Firefox将很可能(部分)用Rust重写。

更多一些关于Rust的内容:Rust是一个可被编译的、面向对象的静态类型语言(默认情况下对象是immutable的)。编译器支持Windows、Linux和Mac平台。Rust在功能上有意地抛弃了任何不切实际的概念,其构建于那些在其他语言中已有的知名功能上。语法方面,Rust使用了像C、C++以及JavaScript一样的花括弧{},但又比较新颖,查看下面的代码块。
use std;
fn main(args: [str]) {
     std::io::println("hello world from '" + args[0] + "'!");
}

这里我们可以将Rust与Google的Go做一比较。据Rust社区明确表示,Rust与Go语言并没有任何关系——其开发早于Go——倒是受Rob Pike开发的其他语言如Newsqueak、Alef和Limbo等影响较深。Rust与Go在功能上很相似,但Rust似乎更关注安全(security- and safety-orieted)。Go拥有全局的垃圾收集器、Null指针及可共享的mutable修饰符,Rust的GC则是可选的,不允许出现Null指针,且默认状态下对象是immutable的。

以下是Mozilla所描述的Rust v0.1的一些功能介绍:

  • 大多数语言支持功能,包括:unique指针、闭包、移动语义(move semantics);泛型接口约束;iDispatch接口;多线程任务模式;Typestate 断言等。
  • 可在Linux x86/x86_64、MacOS x86/x86_64以及Windows x86系统架构下运行。
  • 支持交叉编译及多目标(Muti-target)配置。
详细信息可参见Rust compiler 0.1的发行公告

不过就Rust语言的当前状态而言,其大多数功能虽然已经可用,但还不太完善。标准库API仍可能随时改变。在性能方面,Rust应该达到与C++一样的速度,但现在也尚未做到。Mozilla表示,v0.1还只是一个alpha版本(Mozilla提供了一个打包工具Windows安装器),因此开发人员目前应该仅是体验。

Rust语言的官网:http://www.rust-lang.org/

Via  extremetech

1
3
评论 共 4 条 请登录后发表评论
4 楼 qingyue 2012-01-30 19:54
百度推广的广告挺不匹配的  
3 楼 wj2699 2012-01-30 13:40
2 楼 bcw104 2012-01-30 09:36
D Rust Go,专注于哪一个好呢?
1 楼 mengyancui 2012-01-29 17:48
   

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • DWRACTION使用

    在dwr-action中除了基本配置外,需引入自己的转换器 [code="java"] [/code] 其中加入param是为了防止诸如: 11:07:49,500 INFO DefaultRemoter:51 - Exec: DWRAction.execute() 11:07:49...

  • Web.xml常用元素

    Web.xml常用元素  定义了WEB应用的名字 声明WEB应用的描述信息 ...context-param元素声明应用范围内的初始化... 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 一旦命名了一个过滤

  • Java面试题(全)

    事务具有4个属性,通常称为ACID特性2.1原子性(atomicity)事务是一个完整的操作.事务的各步操作是不可分的;要么都执行、要么都不执行.2.2一致性(consistency)当事务完成时,数据必须处于一致状态.2.3隔离性...

  • 两周面试突击

    以下问题均来自网络,答案以及笔记也是自己去查阅总结的,技术能力有限,如有错误,请联系改正 1、java 初级、中级、高级工程师有什么区别? 技术不同,简单的可以理解为:初级中级的只关注代码,编程。高级的就要考虑...

  • 程序员找工作必看面试题1

    String 有没有 length( ) 这个方法?..... 27 59 、 使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 27 60 、 类与对象的关系是什么........................................ 27 61 、 ...

  • JAVA技术面试题

    1、 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?  可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、 Java有没有goto?  java中的保留字,现在没有在...

  • JAVA开发全集

     //6���根据Qname创建相应的节点(QName就是一个带有命名空间的节点)���������ռ��)  QName qname = new QName(" http://java.zttc.edu.cn/webservice ",   "add","ns");//<ns:add xmlns=" ...

  • web.xml详解

    当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它   12. Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标   写道 <icon>  <small-icon>/images/app_small.gif...

  • Java面试-北大青鸟合肥科海学院

    内部资料,请勿外传 目录一、 Java基础部分... 111、 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?.. 112、 说说&和&&的区别。.. 113、 ...

  • Web.xml的配置及加载 .

    当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它    12.Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标   写道    <small-icon>/...

  • Struts2

    文档中有提到说ActionInvocation中实现了command模式,这点有点看不太懂,难道是迭代那些interceptor的intercept方法就是所谓的命令模式的实现,这个无非就是面向接口编程,难道命令模式本身就没什么内容? 该内容后续...

  • 太阳能自动灌溉系统:基于SPWM技术的逆变正弦波设计与实现

    内容概要:本文详细介绍了太阳能自动灌溉系统的设计与实现,涵盖了多个关键技术点。首先,文章解释了太阳能自动灌溉系统的概念及其优势,如高效节水、环保等。接着,深入探讨了SPWM(正弦脉宽调制)技术,展示了如何通过调节脉冲宽度将直流电转换为正弦波形的交流电,这是逆变器工作的核心技术。随后,讨论了仿真的重要性,特别是使用MATLAB/Simulink进行系统行为和性能的模拟,确保设计方案的可行性。此外,还涉及了编程方面,通过Python和C语言实现了系统的控制逻辑,如根据土壤湿度控制灌溉。最后,介绍了DXP原理图在电路设计中的应用,强调了合理的电路布局和防护措施对于系统稳定性的关键作用。 适合人群:对太阳能技术和自动化控制系统感兴趣的工程师和技术爱好者,尤其是有一定电子电路和编程基础的人群。 使用场景及目标:适用于希望深入了解太阳能自动灌溉系统设计和实现的个人或团队,目标是掌握从能源获取、电力转换、系统模拟到代码控制以及电路设计的全流程,最终能够独立构建高效的太阳能自动灌溉系统。 其他说明:文中提供了大量实例代码和实践经验,帮助读者更好地理解和应用相关技术。同时,强调了实际操作中的注意事项,如

  • (源码)基于Vue.js的通用组件库.zip

    # 基于Vue.js的通用组件库 ## 项目简介 此项目是基于Vue.js构建的组件库,涵盖了Button、Form、FormItem、Input、Notice等多个可复用组件。它具备组件测试、文档生成、自定义主题、按需加载、组件数据通信等功能,并且通过Webpack完成打包,方便在各类Vue项目中使用。 ## 项目的主要特性和功能 1. 多种加载方式支持全局引入和按需加载,可根据项目需求灵活选择。 2. 文档生成利用VuePress工具生成组件文档,便于用户查看组件使用方法和样式。 3. 自定义主题能通过修改样式变量来自定义组件主题,满足不同项目的个性化需求。 4. 组件数据通信通过dispatch和broadcast方法实现组件间的数据通信,提升组件库的扩展性。 5. 独立打包样式文件和组件文件分别打包,可单独加载,减少代码量和加载时间。 ## 安装使用步骤 ### 准备工作 确保已经安装基本的Node.js和npm环境,以及Git。

  • (源码)基于Python的机器学习基础项目.zip

    # 基于Python的机器学习基础项目 ## 项目简介 本项目是一个基于Python的机器学习基础项目,涵盖了线性回归、逻辑回归、感知器算法(PLA)及其改进版(Pocket PLA)等机器学习算法的实现。项目通过不同算法处理不同数据集,并展示了这些算法在分类和回归问题上的应用。 ## 项目的主要特性和功能 线性回归实现了基于梯度下降法的线性回归算法,用于拟合数据并预测目标值。 逻辑回归提供了使用梯度下降法和随机梯度下降法的逻辑回归实现,用于分类任务。 感知器算法实现了基本的感知器学习算法(PLA)和Pocket PLA算法,用于线性分类问题。 数据加载与预处理提供了数据加载和预处理功能,支持不同格式的数据输入。 误差计算与性能评估提供了计算模型误差(误差率或准确率)的功能,用于评估模型性能。 ## 安装使用步骤 1. 环境准备确保已安装Python及其相关库(如NumPy、SciPy等)。

  • 幼儿园教师师德培训教学课件.pptx

    幼儿园教师师德培训教学课件

  • JavaWeb电商系统开发基础教程

    JavaWeb技术在当今的互联网开发中占据着重要的地位,尤其是在电商系统开发领域。通过JavaWeb,我们可以构建出功能强大、稳定可靠的电商网站。本教程将带你从零开始,逐步掌握JavaWeb电商系统开发的基础知识和技能。

  • LabVIEW开发的三支路测试设备软件与PLC程序:状态机架构与ModBUS通信设计

    内容概要:本文详细介绍了作者使用LabVIEW开发一台三支路并行测试设备的上位机软件及其PLC程序的经验。项目涉及多个关键技术点,如LabVIEW的图形化编程特性、状态机设计模式的应用、ModBUS TCP/IP通信协议的实现等。文中不仅解释了LabVIEW的基本操作和代码结构,还深入探讨了如何通过单状态机引擎和支路编号分流实现多支路独立控制的方法。此外,作者分享了一些实用的通信异常处理技巧和优化策略,如心跳包机制、数据采集与逻辑处理的交错执行等。 适合人群:具有一定LabVIEW基础的学习者和工程师,尤其是从事自动化测试设备开发的技术人员。 使用场景及目标:适用于需要开发复杂测试系统的工程师,帮助他们掌握如何在单线程环境中实现多支路独立控制,提高系统的稳定性和效率。目标是提供一种高效、可靠的开发思路和技术实现方法。 其他说明:文中提到的具体技术和实践经验对于中小型测试系统的开发具有较高的参考价值,特别是状态机设计和ModBUS通信部分的内容。

  • #_ssm_134_mysql_新冠疫苗接种管理系统_.zip

    Java项目t基于ssm的课程设计,包含源码+数据库+论文

  • Object Oriented Programming Using C++

    Object Oriented Programming Using C++

  • (源码)基于C++的CWMP客户端实现.zip

    # 基于C++的CWMP客户端实现 ## 项目简介 本项目是一个基于C++实现的CWMP(Connected Without Plugging Management)客户端,用于与DSL(数字用户线)设备进行配置管理交互。它实现了TR069 1.2版本的客户端程序,支持基本的RPC方法和TR181数据模型,并实现了系统升级、恢复出厂、重启等功能。 ## 主要特性和功能 实现了TR069 1.2版本的客户端程序,支持基本的RPC方法和TR181数据模型。 提供了系统升级、恢复出厂、重启等功能,并只支持安卓平台。 支持Linux和Windows操作系统,并提供了相应的处理逻辑。 使用第三方库如curl和tinyxml2来处理网络请求和XML解析。 提供了命令行参数处理功能,支持启动时上报事件、获取RPC方法等。 支持从备份文件中加载配置信息,包括上传、下载和事件等。 实现了事件处理逻辑,包括定时通知和响应处理。 ## 安装使用步骤

Global site tag (gtag.js) - Google Analytics