duangsuse::Echo
曾经书本上复杂、晦涩难懂的知识对我来说已经不是黑盒。我曾经购买的十多本书里再也没有一行完全看不懂的内容。 原先根本看不懂的什么位长度、什么半字双字缓冲器已经成为日常。 原先一个原生 .so(SharedObject 共享对象)就是“无法理解”的黑盒,现在 x86 机器码根本不是问题、远程 GDB 调试和高等 GDB 功能也不是问题 原先连 Java 的 OOP 类型系统自动子类自动转型基类都无法理解,现在理解整个 Java 类型系统已经不是问题 第一个黑历史 Android 应用 MinBase64 到现在,我却已经记住了…
总之不管说计算机科学来看,偏向“理论”的不管是什么水平,偏向“工程”的水平都至少是提升了(虽然计算机科学是工科),所以对我来说技术的确提升了,虽然没有时间写什么代码。
大概是 CS、信息科学、电子电器都有点可以入门的感觉但是因为数学不好所以暂时还是很小的方向发展... 连画画都差点不会(其实至少怎么画圆和怎么画弧形(圆角的长方形)都是不知道的)
大概是 CS、信息科学、电子电器都有点可以入门的感觉但是因为数学不好所以暂时还是很小的方向发展... 连画画都差点不会(其实至少怎么画圆和怎么画弧形(圆角的长方形)都是不知道的)
Canvas 这种高度封装的东西加上 Math 都不会用的话... CG 方面的确是不可能啊... Math.sin 是什么... log10 又是什么... hyp 是啥...
duangsuse Throws
#PL #life #tech “知其变,守其恒” 这个短语实在是太酷了,在学校的时候想了 5 分钟才回忆起来... 结合技术水平来看真的超有震撼力啊。
正是因为知道的多,所以才知道自己的无知
正是因为懂得多,看得细致、能够透过一行行 C# 代码看到生成的 IL、看到 JIT 编译出的机器代码,才可以发现底层以微粒子形式存在的数据竞争风险和值类型装箱操作的隐患,而不是等到程序已经公开部署、安全漏洞已经被大量利用才迟迟修复
只有肯沉下心来学习知识,才有可能从理解 -> 使用 -> 创造一步步走上去,只有有了更高层次的视角 才能解决别人“不能解决”“无从寻觅”的问题
真正有知识的人的成长过程,与麦穗的成长过程一样:正是因为能透过问题的表象看到本质、透过宏观看到微观,能站在比别人低、比别人靠近本质的地方观察,才能做到「知其变」,才能在技术更新越来越快,各色语法糖变化、语言特性换上新包装的时代里坚守自己永恒不变的真知「守其恒」
麦穗空的时候,麦子长得很快,麦穗骄傲地高高昂起;
但当麦穗成熟饱满时,它们开始谦虚地垂下麦芒。
正是因为懂得多,看得细致、能够透过一行行 C# 代码看到生成的 IL、看到 JIT 编译出的机器代码,才可以发现底层以微粒子形式存在的数据竞争风险和值类型装箱操作的隐患,而不是等到程序已经公开部署、安全漏洞已经被大量利用才迟迟修复
只有肯沉下心来学习知识,才有可能从理解 -> 使用 -> 创造一步步走上去,只有有了更高层次的视角 才能解决别人“不能解决”“无从寻觅”的问题
感谢 C# 大佬的好心,据说 《CLR via C#》 作者 Jeff 曾经写了一个
我觉得奇怪的是假如说
ES6 的 Generator(Corountine 携程)函数我还了解(包括在 coroutine 里 yied 别的 coroutine 函数),但
AsyncEnumerator 类,不知道有什么关系我觉得奇怪的是假如说
async 函数里 await 别的 async 函数时这个函数直接返回...(啊啊啊是我想错了...ES6 的 Generator(Corountine 携程)函数我还了解(包括在 coroutine 里 yied 别的 coroutine 函数),但
async 语法好像让问题理解复杂起来了,到现在还一直不是很清楚,只知道怎么用不知道是怎么实现的...// 附:ECMAScript v6 Generator 函数例子
function *coOneTwoThree() {
yield 1
yield 2
yield 3
}
var co123 = coOneTwoThree()
> co123.next()
{ value: 1, done: false }
> co123.next()
{ value: 2, done: false }
> co123.next()
{ value: 3, done: false }
> co123.next()
{ value: undefined, done: true }
C# 是门很优秀的语言,现在你们能看到的很多语言特性、设计模式,比如
async, Thread, struct, LINQ, GC, prototype extension, CSP(component software programming), COM(component object model), Serialize, Attribute, sealed class, out/ref, message queue, thread pool, generic type, tuple C# 都有,CLR 设计时也有考虑。不得不说单单就语言 research 研究方面 MS 还是很良心的,至少比 Java 特性多,不过性能上可能差一点,毕竟多了很多很多特性。其实 JVM 上的 Kotlin 特性也很多了... 都在往特性多的语言跑duangsuse::Echo pinned «顺口说一下,我准备先花 20 分钟左右开发个在 Android 上自动启用 USB Tethering (USB 绑定网络)的应用,虽然很简单 (如果以后可能的话,可能想开发一下原生(Like C++)应用的 Hook 插件,要研究怎么做的话会在频道上更新的) 然后把 METO 的 sm.ms 图床接口代码发上来快速分享给大家 然后给 Vultr 钱钱... 然后补充一下 Gekyll 的设计,有时间时写 然后给 InScript 添加新特性,假期结束前出总文档 最后有没有大佬愿意想方设法教教我 C# 的…»
LWL 的基地台
Photo
Answer Correct / Accepted
Wrong Answer
Time Limit Exceeded(Error)
Memory Limit Exceeded(Error)
Compile Error
Unknown Error
???
Runtime Error
... 又是一个不教的,非得自己找啊...
Wrong Answer
Time Limit Exceeded(Error)
Memory Limit Exceeded(Error)
Compile Error
Unknown Error
???
Runtime Error
... 又是一个不教的,非得自己找啊...
Forwarded from Algae
国际空间站的业余无线电台举办新一轮的 SSTV(慢扫描电视)活动,该活动将于北京时间 2018 年 10 月 27 日 18:00 左右开始。预计传输将使用 PD-120 模式在 145.800MHz 进行
Covariant Script编程语言是李登淳(Michael Lee)于2017年初设计的一门通用型高性能脚本语言,其官方解释器由李登淳本人使用C++编程语言编写。
Covariant Script的目标是成为更加友好的“C With STL”,即综合C编程语言简单明了的语法和C++编程语言强大的标准库,从而最大程度降低语言本身的难度的同时提供强大的功能。
Covariant Script支持大多数主流平台,包括Microsoft Windows,Linux,Mac OS,Android等(Covariant Script理论上能够支持任意提供了标准C++实现的系统中)。用户只需编写一份代码就能够在世界上90%的设备中运行,实现“Write once,run everywhere”。
Covariant Script是动态类型语言,类型这个概念在在Covariant Script中被大大弱化,因此它不需要模板和泛型等特性也能实现灵活的程序设计风格。但因为Covariant Script拥有严谨的类型系统和可靠的垃圾回收器,从而保证了类型安全和资源安全。
Covariant Script的语法融合了C/C++/Java/Lua/Basic等主流编程语言的语法,保留并改造了一部分易于使用的语法,删除了大量难以理解的部分。精简融合的语法仍然保留了现代编程语言的组成要素:模块系统,名称空间,垃圾回收器,异常处理,面向对象编程(OOP),Lambda表达式,基于范围的for循环等。
Covariant Script拥有强大齐全的标准程序库,并为其精心设计了可靠,易于使用的接口和完善的文档。Covariant Script标准程序库囊括了字符串处理,正则表达式,套接字,数据库,图形库,系统API,流式API,关联容器,顺序容器,离散容器,数学运算,随机数引擎,高精度计时器等一系列实用的功能。
得益于优秀的架构和作者丰富的开发经验,Covariant Script非常易于扩展。精心设计的类型系统理论上可支持C/C++中所有的类型,您可能只需定义一些特定的函数即可让您的类型在Covariant Script中自由穿梭。作者为了强化Covariant Script与C++的联系,简化第三方库移植的流程,特意设计编写了CNI(C/C++ Native Interface)。通过CNI Covariant Script将能够直接调用大多数C/C++中的函数(不支持模板函数和重载函数,这是C++语言的限制)。用户无需做太多工作,只需将函数直接注册到Covariant Script中即可,CNI甚至能够自动检测函数签名并适配。
Covariant Script的模块系统分为两部分。一部分是C++编写的扩展,由于脱离了Covariant Script的环境一般来说性能更高,也能够更好的利用底层API。Covariant Script能够动态加载扩展而无须重新编译Covariant Script自身。另外一部分是Covariant Script编写的包,包的特点是更加灵活,依托于Covariant Script跨平台的特性包不需要编译,在不同平台上一般来说是通用的,但性能受语言本身限制不会太高,不适合计算密集或底层的应用。Covariant Script能够在独立于主程序的沙箱中编译解释包并通过模块系统引入到主程序中。
综上所述,Covariant Script是一门全能的编程语言。“麻雀虽小,五脏俱全”,几乎涵盖了计算机程序设计中大多数概念和功能。但它比C++更简单,比C更全能,比Java更轻巧,比Python更灵活。Covariant Script解决了C++语法晦涩难懂,开发环境搭建困难,第三方库安装过程繁冗,跨平台困难;Java运行环境太大以及Python语法不自由的问题,为入门者提供了更简单的开发环境,为开发者提供了更灵活的开发体验,是目前国内由独立开发者开发的编程语言中功能最完全,综合体验最好的编程语言之一。
Covariant Script的目标是成为更加友好的“C With STL”,即综合C编程语言简单明了的语法和C++编程语言强大的标准库,从而最大程度降低语言本身的难度的同时提供强大的功能。
Covariant Script支持大多数主流平台,包括Microsoft Windows,Linux,Mac OS,Android等(Covariant Script理论上能够支持任意提供了标准C++实现的系统中)。用户只需编写一份代码就能够在世界上90%的设备中运行,实现“Write once,run everywhere”。
Covariant Script是动态类型语言,类型这个概念在在Covariant Script中被大大弱化,因此它不需要模板和泛型等特性也能实现灵活的程序设计风格。但因为Covariant Script拥有严谨的类型系统和可靠的垃圾回收器,从而保证了类型安全和资源安全。
Covariant Script的语法融合了C/C++/Java/Lua/Basic等主流编程语言的语法,保留并改造了一部分易于使用的语法,删除了大量难以理解的部分。精简融合的语法仍然保留了现代编程语言的组成要素:模块系统,名称空间,垃圾回收器,异常处理,面向对象编程(OOP),Lambda表达式,基于范围的for循环等。
Covariant Script拥有强大齐全的标准程序库,并为其精心设计了可靠,易于使用的接口和完善的文档。Covariant Script标准程序库囊括了字符串处理,正则表达式,套接字,数据库,图形库,系统API,流式API,关联容器,顺序容器,离散容器,数学运算,随机数引擎,高精度计时器等一系列实用的功能。
得益于优秀的架构和作者丰富的开发经验,Covariant Script非常易于扩展。精心设计的类型系统理论上可支持C/C++中所有的类型,您可能只需定义一些特定的函数即可让您的类型在Covariant Script中自由穿梭。作者为了强化Covariant Script与C++的联系,简化第三方库移植的流程,特意设计编写了CNI(C/C++ Native Interface)。通过CNI Covariant Script将能够直接调用大多数C/C++中的函数(不支持模板函数和重载函数,这是C++语言的限制)。用户无需做太多工作,只需将函数直接注册到Covariant Script中即可,CNI甚至能够自动检测函数签名并适配。
Covariant Script的模块系统分为两部分。一部分是C++编写的扩展,由于脱离了Covariant Script的环境一般来说性能更高,也能够更好的利用底层API。Covariant Script能够动态加载扩展而无须重新编译Covariant Script自身。另外一部分是Covariant Script编写的包,包的特点是更加灵活,依托于Covariant Script跨平台的特性包不需要编译,在不同平台上一般来说是通用的,但性能受语言本身限制不会太高,不适合计算密集或底层的应用。Covariant Script能够在独立于主程序的沙箱中编译解释包并通过模块系统引入到主程序中。
综上所述,Covariant Script是一门全能的编程语言。“麻雀虽小,五脏俱全”,几乎涵盖了计算机程序设计中大多数概念和功能。但它比C++更简单,比C更全能,比Java更轻巧,比Python更灵活。Covariant Script解决了C++语法晦涩难懂,开发环境搭建困难,第三方库安装过程繁冗,跨平台困难;Java运行环境太大以及Python语法不自由的问题,为入门者提供了更简单的开发环境,为开发者提供了更灵活的开发体验,是目前国内由独立开发者开发的编程语言中功能最完全,综合体验最好的编程语言之一。
[CovScript 最新在线参考文档](http://covscript.org/docs/latest)
covscript-docs
参考文档
Covariant Script编程语言:参考文档
其实老李也算是 C++ 老手了,不说历史,至少你们看上面的
标准程序库囊括了字符串处理,正则表达式,套接字,数据库,图形库,系统API,流式API,关联容器,顺序容器,离散容器,数学运算,随机数引擎,高精度计时器 就知道一定是学后端学成精了(说实话其中 50% 包括离散啊、树状数组啊我还是不知道或者没有彻底理解),看 cs_examples 也能看到不少例子,虽然老李不是没有能力,但 CovScript 的自动内存管理还是基于 shared_ptr 一类的 rc 智能指针的,不是现在流行的 Tracing GC/Rc with Tracing(特指 PHP),这是毕竟可惜之处了。现在老李上了大学应该会有时间重新设计 CovScript(或者更新实现什么的),所以应该会多加点代码什么的...InScript 的宏系统还是之前设计 Regular Preprocessor 的时候设计的,后来计划一个 Lua 实现的时候也打算使用,总之就是非常 excited 的基于 token 流处理的宏系统,大概打算来这么玩
宏系统大概也算是为 DSL 做一下扩展而已,实在不行的东西就让代码自己来动态字符串处理好了...
Ins 的「哲学」大概也打算和 Ruby 一样,不要求绝对的性能和正确,不要求整个语言系统有多简单,尽可能追求自然的语法和可扩展性,让 InScript 成为 JVM 上最好的 REPL(好过 Groovy!)。
宏系统大概也算是为 DSL 做一下扩展而已,实在不行的东西就让代码自己来动态字符串处理好了...
macro <name:inline-lanuage> <name>$lang <tokens>$text <keyword:end> = $lang($[text]) 也没打算弄得和 Rust、Crystal 那么复杂还讲宏「卫生」性的啊,一定得展开到有效语法的啊...Ins 的「哲学」大概也打算和 Ruby 一样,不要求绝对的性能和正确,不要求整个语言系统有多简单,尽可能追求自然的语法和可扩展性,让 InScript 成为 JVM 上最好的 REPL(好过 Groovy!)。
# macros.ins
out macro <name:async> <keyword:def> = @async def
out macro <name:await> <tokens>$toks <eostmt> = await -> { $toks }
# async.ins
require "macros"
scope Async
require "async"
using Async
...