多年研发和团队管理经验,熟悉LLVM、GPU等技术领域,具备公司层面技术管理能力。
最近常用的几个技术类网站,列下来备忘,也分享给大家。
一、可变数据成员 1、我们希望类的数据成员(甚至在const成员函数内)可以修改,这可以将它们声明为mutable来实现。 2、可变数据成员永远都不能为const,甚至当它是const对象的成员时也如此。
一、多重继承 1、多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。 2、在多重继承下,派生类的对象包含每个基类的对象。 3、(多重继承)构造函数初始化式只能控制用于初始化基类的值,不能控制基类的构造次序。
从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。
ClangMR的论文《Large-Scale Automated Refactoring Using ClangMR》:http://www.hyrumwright.org/papers/icsm2013.pdf ClangMR是Goolge的一个工具,严格的说,并不属于Clang家族,是属于基于Clang所构建的一个工具。
Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/ Clang Static Analyer是一个源码分析工具,它可以发现C、C++和Objective-C程序中的bug。
英文原文地址:http://llvm.org/docs/Atomics.html 译文原文地址:http://blog.csdn.net/wuhui_gdnt/article/details/52485591 注:该文章转载已经得到译者授权。
Devirtualization in LLVM and Clang This blog post is part of a series of blog posts from students who were funded by the LLVM Found...
作者:史宁宁(snsn1984) 之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享。 网址:http://llvm.
原文地址 Generate C interface from C++ source code using Clang libtooling Dec 6, 2016 · 24 minute read · Comments clangllvmCC++I develop...
Apache Beam Apache Beam provides an advanced unified programming model, allowing you to implement batch and streaming data processing jobs that can run on any execution engine.
继续上一篇,同样的hello.c,同样的执行过程,只不过继续添加了一些log信息,而且对代码进行了更近一步的挖掘。先看输入和输出的log信息(前半部分): shining@shining-VirtualBox:~/llvm-3.
这个过程简单的分为几步。 第一步:写一个简单的小程序,hello.c。内容如下: #includeint main() { printf("Hello world!\n");} 第二步:找出如何在LLVM里面输出信息,最后选择采用llvm::errs(),等于采用了LLVM的错误机制。
作者:史宁宁(snsn1984) 源码位置:clang/lib/Lexer.cpp 源码网络地址:http://clang.llvm.org/doxygen/Lexer_8cpp_source.html Lexer.cpp这个文件,是Clang这个前端的词法分析器的主要文件,它的内容是对Lexer这个类的具体实现,原文件的注释中:“This file implements the Lexer and Token interfaces.” 这么解释这个文件的,但是Token只有两个简单函数的实现,剩下的都是Lexer的实现。
TensorFlow v0.9 now available with improved mobile support Monday, June 27, 2016 Posted by Pete Warden, Software Engineer When we s...
import numpy as np import tensorflow as tf # Import MINST data import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot=True) #这里主要是导入数据,数据通过input_data.py已经下载到/tmp/data/目录之下了,这里下载数据的时候,需要提前用浏览器尝试是否可以打开 #http://yann.lecun.com/exdb/mnist/,如果打不开,下载数据阶段会报错。
例子源码地址: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1%20-%20Introduction/basic_operations.py 根据网上的入门例子,一点点的熟悉代码和TensorFlow。
Github上除了有TensorFlow的源码库之外,还有一些很不错的适合入门的资源。现在将目前已经接触到的资源整理出来,和大家分享。 1、TensorFlow源码库 https://github.com/tensorflow/tensorflow 2、TensorFlow中文文档 https://github.com/jikexueyuanwiki/tensorflow-zh 3、TensorFlow入门例子库1,每个例子都有对应的Notebook说明。
通过阅读TensorFlow的论文和相关博文之后,接下来,对TensorFlow进行一个简单的初步运行。 1、安装了Ubuntu 16.04.(ubuntu-16.04-desktop-amd64.
原文地址 Machine Learning in the Cloud, with TensorFlow Wednesday, March 23, 2016 Posted by Slaven Bilac, Software Engineer, Google Re...
原文地址 Announcing TensorFlow 0.8 – now with distributed computing support! Wednesday, April 13, 2016 Posted by Derek Murray, Software EngineerTensorFlow0.
最近工作太忙,赶上孩子刚刚出生不久,简直是忙的四脚朝天。对技术的跟踪、论文的阅读和代码的编写,都拉下了一段时间。跟朋友聊天的时候得知TensorFlow,而且是朋友极力推荐的开源项目,马上关注了一下。
第一章 LLVM简介 作者:史宁宁 1.1 LLVM是什么 LLVM是什么?这是一个虽然基础,但是也曾经让很多新入门的人迷惑的一个问题。从字面上来讲,LLVM(Low Level Virtual Machine)是一个底层虚拟机,LLVM曾经有一部分功能对虚拟机有所帮助。
----------《像外行一样思考,像专家一样实践----科研成功之道》读后感 第一次看到这个标题,就让我非常的有感触。像外行一样思考,可以给我们完全不同的视野。
一直想写一本关于深入学习LLVM的书,这个想法有了很久了,但是一直没有机会动手。现在虽然很忙,但是依然觉的有必要马上动手去做这个事情。任何事情都是一点一点积累起来的,如果一直不动手,什么都做不成。
从2006年开始有写年终总结的习惯了。不知道是不是因为受工作的影响。可能是那时候觉的给领导汇报的那份太正式吧,所以有了个非正式的总结。 盘点2008: 第二次参加研究生入学考试,并顺利通过,未能如愿以偿,但是结果基本满意。
2014年已经过去快一个月了,我才开始提笔盘点我的2014。不得不说,和前些年还有些不同的,前些年是从12月份就早早的开始盘点这一年,甚至从11月份就开始总结这一年的收货如何,这次却晚了很多。
作者:史宁宁(snsn1984) clang/include/clang/Lex/Preprocesser.h 这个文件是包含clang::Preprocesser类的定义的头文件。
作者:史宁宁(snsn1984) Clang的Lexer(词法分析器)的源码的主要位置如下: clang/lib/Lex 这里是主要的Lexer的代码; clang/include/clang/Lex 这里是Lexer的头文件代码的位置; 同时,Lexer还使用了clangBasic库,所以要分析Lexer的代码,clangBasic(clang/lib/Basic)的一些代码也会用到。
作者:史宁宁(snsn1984) 自己收集了一些LLVM/Clang的代码,并且自己也在一点一点的写一些LLVM/Clang以及编译器的代码,在这里把这些代码库分享出来,欢迎大家交流探讨。
作者:史宁宁(snsn1984) 首先我们确定下Clang编译器的具体内容和涵盖范围。之前在《LLVM每日谈之二十 Everything && Clang driver 》中曾经提到过,Clang driver(命令行表示是clang)和Clang前端(按照具体实现来说就是Clang的那些库所实现的前端)是不同的,同时还存在一个Clang编译器(命令行表示是clang -cc1)。
作者:史宁宁(snsn1984) 最近在读,这是读的第一本LLVM的书,很多地方虽然讲的是自己知道的东西,但是也给人耳目一新的感觉,让人感觉之前有些不确定的东西,或者没有联系起来的知识点一下子贯通了,那感觉非常酸爽。
作者:史宁宁(snsn1984) LLVM终于有了一本系统的书了——《Getting Started with LLVM Core Libraries》。这本书号称是LLVM的第一本书,但是据说日本早就有两本日文的关于LLVM的书,这个了解的不多。
在武林中,我们常常流传着关于高手的传奇故事。手中无剑,心中也无剑,是无数剑客们追求的境界。因为虽然手中无剑,心中也无剑,但是落花飞叶皆为剑,剑剑杀招,可取敌人首级。但是这样的高手毕竟是非常稀缺的。
这些年主要一直是搞C、C++,偏底层一些,一直想多了解一下上层的东西。于是利用业余时间,看了些Java方面的东西,也利用一些架构搭建了一些简单的程序,在此想简单的谈谈自己的一点感悟。
业余没事的时候,看了点Java的资料,无意之中发现了Activiti,就打算自己跑几个例子看看到底是怎么回事。一直搞底层,也得偶尔关心下上层到底发展到什么程度了不是。
将近两个月的西藏之行结束了,总该说点什么,但是又不知道怎么说,就只好唠叨唠叨了。 此行计划三个月,打算纯徒川藏线,实际的执行结果是纯徒了三分之一,海拔四千以上的山爬了一半(7座),然后就把韧带给拉伤了,至今仍然没有恢复。
上周跟公司提了离职,给公司的理由是:累了,想休息一下,调整一下。其实这是表面的理由,深层次的理由是,一直还有一个梦想没有实现,那就是徒步川藏线。自从知道了川藏线上的风景,就一直惦记着去走一圈,11年自己一个人在电影院看《转山》,给自己看的稀里哗啦的,或许我本来就是个感性的人,那时候打算12年7月份去走这条线。
关于这个想法,在脑子里盘旋好久了,今天把它抓出来,跟大家分享一下。 从学计算机到现在,十几年了,遇到过很多人,同学、朋友、师弟师妹、同事、下属,其中不少人有这样的问题,当自己接到任务的时候,迫不及待的说:“我不会。
之前一直坚持在自己博客坚持转载LLVM WEEKLY,是因为非常喜欢这个每周的关于LLVM和CLANG的周报,不用去太关注邮件列表,可以为自己节省大量的时间,把这些时间专注在需要关注的点上。
关于编译有三本书: 龙书: 《Compilers:Principles, Techniques, &Tools》 虎书:《Modern Compiler Implement in C》 这本书还有JAVA和ML版本 鲸书:《Advanced Compiler Design and Implementation》 这三本书在编译领域非常出名,其中名气最大的应该属于龙书了,也是目前仍然有版本在印刷发行的。
昨天获得了博客专家的勋章,惊喜总是来的有点意外。这个勋章也算是来的一波三折。借着这个机会,回首一下我在CSDN的博客历史。 这个博客现在可查的最早的文章,是04年下半年写的,其实之前应该还有一些自己写的乱七八糟的东西,不光是技术还有生活中的杂七杂八的东西,不过后来被我清理了。
原文地址:http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/ Parsing C++ in Python with Clang July 3rd, 2011 at...
作者:史宁宁 现在的Clang,不仅仅是一个编译器前端,同时也可以作为一个库使用。作为一个库使用的时候,可以用它去分析C/C++/ObjectC语言代码,可以分析源码得到AST,也可以获取已经分析好的AST,也可以遍历AST,还可以获取AST中基本元素的物理源码位置。
原文地址:http://www.seethroughskin.com/blog/?p=2172 Syntax traversal is a powerful tool.
Modern source-to-source transformation with Clang and libTooling May 1st, 2014 at 7:08 pm I couple of years ago I publish...
自从开始上大学读计算机以来,自己慢慢的也积累了不少计算机方面的文章和书籍,特别是一些自己读过的,觉得很不错的,一直想分享给大家。但是却没有时间一次性的把他们整理出来。
原文地址:http://blog.regehr.org/archives/1109 Let’s Work on an LLVM Superoptimizer A compiler optimization has two basic parts.
作者:史宁宁 -----------------------------------------------------------------------------------转载请注明出处--------------------------------------------------------------------------------- 最近,Android中的编译工具链发生了改动,这个改动是Android的runtime(也可以说是VM,这两种说法在Google官方文档中也多次交互出现)改动引发的。
The lexer hack From Wikipedia, the free encyclopedia In computer programming, the lexer hack (as opposed to "a lexer ...