编程语言的易用性_LINQ

易用性设计

开发者的整个工作流进行完整的编程支持
编程接口:易用且高性能的API接口
    具有易用的编程接口来支持用户使用高层次语言,如Python实现机器学习算法;
	同时也要具备以C和C++为核心的低层次编程接口来帮助框架开发者用C和C++实现大量高性能组件,从而在硬件上高效执行
	  利用高层次编程语言Python作为面向用户的主要前端语言,而利用C和C++实现高性能后端		  
   PyTorch的Python和C/C++的混合接口	: 主要依赖Pybind11来将底层的大量C和C++函数自动生成对应的Python函数,这一过程一般被称为Python绑定( Binding)
数据抽象-
  类似于 LINQ式 的编程抽象
    TensorFlow 的数据模块tf.data [murray2021tf], 
	MindSpore  的数据模块 MindData 等
  Spark Flink的易用性
  计算图由基本数据结构张量(Tensor)和基本运算单元算子构成
编程范式
    函数式编程是一种编程范式 MindSpore选择将函数式和面向对象编程融合

LINQ 语言集成查询

LINQ(Language Integrated Query)是一种用于查询和操作各种数据源的统一查询语言
语言集成查询 (LINQ) 代码 LINQ 是一种用来进行数据访问的编程模型
     获取数据源。创建查询。执行查询。
	数据源--可查询类型 
	查询指定要从数据源中检索的信:在 LINQ 中,查询变量本身不执行任何操作并且不返回任何数据
	执行查询: 立即执行和延迟执行。
	     立即执行 Count、Max、Average 和 First 就属于此类查询。
		 延迟执行 指的是不在代码中声明查询的位置执行运算。 仅当对查询变量进行枚举时才执行运算
		    延迟执行流式数据
			延迟执行非流式数据:  排序或分组等运算均属于此类别。

C# 语言模型

LINQ 通过为各种数据源和数据格式提供一致的 C# 语言模型
   查询表达式是以查询语法表示的查询。 查询表达式是一流的语言构造

Python

py-linq py-linq是一个致力于将LINQ功能移植到Python的开源项目 简洁的链式调用,强大的数据过滤和转换能力
Asq is simple implementation of a LINQ-inspired API for Python 

C++

Linq库的核心在于其对C++标准的支持,特别是C++ Ranges特性的利用,以及自定义扩展方法的设计。
 它巧妙地利用了管道(pipe)操作符|来串连不同的查询操作,使得链式调用成为可能

Cangjie

语法糖--表达式
   管道  管道 Pipeline  于管道操作符 |> 的表达式
 操作数_operand  操作符_operator  
     操作符的优先级、结合性以及操作数的求值顺序	  操作符重载

     顺序表达式 条件表达式 循环表达式
	   if  else
       for-in 表达式、while 表达式和 do-while 表达式		
       控制转移表达式		   break、continue  return  throw
	    tryExpression

    模式匹配表达式(match 表达式) 带 selector 的 match 表达式和不带selector 的 match 表达式 case where
        pattern
            : constantPattern
            | wildcardPattern
            | varBindingPattern
            | tuplePattern
            | typePattern
            | enumPattern
            ;		
   数值类型转换表达式 this 和 super 表达式  spawn 表达式  括号表达式  类型检查的表达式
   算数表达式 关系表达式  位运算表达式
   流表达式是包含流操作符的表达式  中缀操作符~>(称为composition)  Lambda 表达式
   Quote 表达式用于引用代码  宏调用表达式

Java

 Java Stream API执行一些常见的集合操作,类似于LINQ的功能	 

历史

TensorFlow1.0 其代表的编程特点包括计算图(Computational Graphs)、会话(Session)、张量(Tensor)它是一种声明式编程风格
2017年Facebook发布了PyTorch其编程特点为即时执行,它是一种命令式编程风格
2022年PyTorch推出functorch 可与PyTorch模块和PyTorch autograd一起使用

参考

 https://learn.microsoft.com/zh-cn/dotnet/csharp/linq/get-started/introduction-to-linq-queries
posted @ 2024-12-03 17:35  辰令  阅读(51)  评论(0)    收藏  举报