zoukankan      html  css  js  c++  java
  • Facebook Hack 语言 简介

    Facebook Hack 语言 简介

     
     

    1. Hack 是什么?

    Hack 是一种基于HHVM(HipHop VM 是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT编译器,同时具有产生快速代码和即时编译的优点。)的新型编程语言,可以实现与PHP的无缝互操作。Hack通过静态编辑确保了PHP的快速开发周期,与此同时又添加其它主流语言的很多通用功能,使其相比于PHP更具优势。

    Hack通过检索本地服务器的文件系统表提供即时的类型校验,校验耗时通常小于200毫秒,因此它很容易集成到你的开发流程中而不引入明显的延时。

    下面是Hack语言一些非常重要的特性:

    • Type Annotations (类型注释): 可以是PHP代码显式类型参数,类成员变量和返回值:
      复制代码
      1 <?hh
      2 class MyClass {
      3   const int MyConst = 0;
      4   private string $x = '';
      5   public function increment(int $x): int {
      6     $y = $x + 1;
      7     return $y;
      8   }
      9 }
      复制代码
    • Generic(泛型):允许类和方法参数化(例如,当类实例化或方法调用时的一个类型关联),同静态类型语言如C和Java一样:
      复制代码
       1 <?hh
       2 class Box<T> {
       3   protected T $data;
       4 
       5   public function __construct(T $data) {
       6     $this->data = $data;
       7   }
       8 
       9   public function getData(): T {
      10     return $this->data;
      11   }
      12 }
      复制代码
    • Nullable Types(可空类型): Hack 通过使用符号“?”实现对可空类型的支持,这就引入了一种更安全的方式来处理空值,尤其对值不能取null的原始类型非常有用,例如bool 和int(用法:?bool 和 ?int),可空操作符可以用于任何类型或类
    • Collections: 通过提供一流的,内置的参数化类型,如Vecctor(一个有序的,基于索引的列表),Map(一个有序的字典),Set(一个无重值列表), 和Pari(基于索引的只有两个元素的集合)来增强使用PHP 数组的体验。
    • Lambadas 提供和PHP closures相类似的功能,但它通过隐式的封闭的函数体捕获变量并且更加简洁
      复制代码
      <?hh
      function foo(): (function(string): string) {
        $x = 'bar';
        return $y ==> $x . $y;
      }
      function test(): void {
        $fn = foo();
        echo $fn('baz'); // barbaz
      }
      复制代码

      Other significant features of Hack include ShapesType AliasingAsync support, and much more.

    Hack其他一些重要特性包括Shapes, Type Aliasing, Async support等。

    更多详细信息请查阅:http://hacklang.org/

     

    HHWM简介:

    HHWM(HipHop VM) 是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。

    HHWM能做什么?

    几乎可以做任何事情,HHWM主要专注于服务器端脚本,这样你就可以收集表单数据,生成动态页面内容,或者发送和接收的cookies。除此,HHVM可以做更多的事情。

    HHVM脚本主要应用于两大领域:

    • 服务器端脚本。这是HHVM最传统,也是最主要的目标领域。你需要三样东西来完成这项工作。
      • HHVM解析器
      • 一个web服务器
      • 一个web浏览器

    你需要运行一个连接HHVM安装的web服务器,你可以通过一个web浏览器访问Hack程序的输出,通过服务器查看Hack页面。所有的这些都可以在你的家用电脑上运行。

    • 命令行脚本。你可以编写一个HHVM命令行脚本,并且不依赖任何服务器或浏览器来运行,唯一需要的是HHVM解析器。这种方法是定期执行脚本或者测试新的库和功能的最佳选择。这些脚本也可以用于简单的文本处理任务。

    HHVM完全支持各种Linux操作系统的变种,包括Ubuntu,CentOS的,Debian等等,HHVM也可以安装在Mac OS X, 只在解释模式下运行(无JIT, 正在开发). Windows的支持正在积极开发。对于当今绝大多数web 服务器, HHVM也都有很好的支持,这包括使用FastCGI协议的各种web服务器,如:Apache, lighttpd 和nginx.

    使用HHVM,你可以自由的选在一个操作系统和一个web服务器。此外,你还可以使用过程编程或面向对象编程(OOP),或它们两者的混合物的选择。当然,你可以选择使用Hack或PHP作为编程语言。

    使用HHVM,你可以不再受限于HTML的输出能力。HHVM的能力不仅局限于此,它还包括输出图片,PDF文件,甚至动态Flash(使用libswf和Ming),当然你也可以非常简便的输出任何文本,例如XHTML和任意XML文件. HHVM可自动生成这些文件,并将其保存到文件系统,而不是直接输出,形成一种动态内容的服务器端的缓存。

    HHVM一个最强大,最显著特征就是广泛的数据库支持,可以使用一个特定的数据库扩展来,或使用一个像PDO样的抽象层,或者通过ODBC扩展链接到任何支持开放式数据库链接标准的数据库,编写一个启用数据库功能的网页会是难以置信的简单(例如, mysql)。其他数据库可以利用cURL 或者 sockets.

    HHVM也可以通过使用如LDAP, IMAP, HTTP等的协议来提供对其他服务交互的支持。你也可以开放一个Raw Network Sockets ,使用任何其他协议进行交互。HHVM支持在几乎所有的Web编程语言见的WDDX复杂数据的交换。

    HHVM具有卓有成效的文本处理功能,包括 perl 兼容的正规表达式(PCRE),以及解析和操作XML文档的多种扩展和工具。HHVM以libxml2为基础标准化了所有XML的扩展,于此同时也扩展了XML功能集,加入了SimpleXML, XMLReader 和XMLWriter的支持。

    本文不足以列出HHVM所有的功能和优势。你可以通过阅读Hack 功能参考手册(后续补上)来进一步了解本页提到的扩展。

     
    分类: Facebook Hack
  • 相关阅读:
    trackr: An AngularJS app with a Java 8 backend – Part III
    trackr: An AngularJS app with a Java 8 backend – Part II
    21. Wireless tools (无线工具 5个)
    20. Web proxies (网页代理 4个)
    19. Rootkit detectors (隐形工具包检测器 5个)
    18. Fuzzers (模糊测试器 4个)
    16. Antimalware (反病毒 3个)
    17. Debuggers (调试器 5个)
    15. Password auditing (密码审核 12个)
    14. Encryption tools (加密工具 8个)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3619916.html
Copyright © 2011-2022 走看看