The content of the postings is owned by the respective author. vbfeeds.com is not responsible for the contents of the postings. This site is automatically generated and cannot be reviewed for abusive content. If you find abusive content on vbfeeds.com, please contact us at abuse@vbfeeds.com and we will remove it. Designated trademarks and brands are the property of their respective owners. vbfeeds.com Copyright © 2005 Serge Baranovsky. All rights reserved.
|
|
by
brianbec via
Brian Beckman
on
9/9/2006 1:15:00 PM
Due to technical problems uploading to this site, I posted a new article over here: http://lorentzframe.blogspot.com/
|
|
by
brianbec via
Brian Beckman
on
9/8/2006 1:34:00 AM
Consider the following snapshot from a Geometry-Expressions (GX) ( http://www.geometryexpressions.com ) file: The blue coordinate-frame lines represent our inertial frame, at rest with respect to us. The red coordinate-frame lines represent another inertial frame, one moving at speed v with respect to us. The red x-axis has slope v (actually v / c^2, but c = 1 here) and the red y-axis has slope 1/v, reflecting the space-time symmetry of the Special Theory of Relativity. B is ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
8/29/2006 12:10:00 PM
For some time, it was popular to experiment with VMs (virtual machines) that accepted programs represented as trees or graphs or related algebraic structures. The most famous examples are Haskell's G-Machine (standing for "graph" machine) and CAML's Categorical Abstract Machine, and there are many more. The whole topic of Intentional Programming is devoted to manipulation of programs as trees, even to the point of their surface syntax. We can see contemporary efforts to p ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
8/4/2006 1:22:00 AM
Reference: “Feynman’s Lost Lecture, The Motion of Planets Around the Sun,” by David L. Goodstein and Judith R. Goodstein, W. W. Norton & Company, New York, 1996. Richard Feynman was one of the most important physicists of all time. He had a peculiar way of taking ideas out of thin air and bringing them to bear on problems that seemed unrelated, thereby busting them wide open. He is perhaps best remembered for the path-integral formulation of relativistic quantum mecha ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
8/3/2006 7:44:00 PM
Ok, it's been quite a while since I issued the challenge to write the Y combinator in VB9 CTP without using recursive types, and no one has bitten yet (actually, the challenge was originally made to me by Erik Meijer and much of what I've done comes from Mark Shields). So I am going to drop a HUGE hint and re-issue the challenge. Review my blog to see how I did the early-bound version, using a universal representation for types. Now, instead of recursively defining a type U with a branch ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
6/6/2006 11:38:00 AM
I wasn’t sure I was going to report a version of Y using Object rather than explicit recursive types, but it turned out to be so easy and pretty that I couldn’t resist. It’s rather a dead-end, evolutionarily speaking, since future development will use the template of the explicit Universal type presented last time, but it’s amusing enough for a blog entry:
REM (? a -> z z a)
Class OfA
Private Z As Object
&nbs ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
6/5/2006 11:55:00 AM
Ok, we have almost everything on hand to write a clean and honest recursion-free factorial in VB, albeit with recursive types. I actually struggled with this for some time, the problem being that we have functions of Long to Long —call those of type df , then functions from df to df —call those of type dh , then functions from dh to df , and functions from dh to dh —mmm, ok this situation isn’t converging. If we needed two flashes and one rolling thunderstorm of genius to get thi ... [ read more ]
|
by
brianbec via
Brian Beckman
on
6/5/2006 1:08:00 AM
Let’s review the bookends of our so-far successful foray into recursion elimination. The general theme has been replacement of recursive calls by self-application of functions adhering to recursive types . (Now, I think we can even eliminate the recursive types, but we still have a way to go before that.) The first, successful recursive type was
Delegate Function dg ( ByVal g As dg , ByVal n As Long ) As ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
6/3/2006 3:12:00 AM
Last installment, we found we could write a factorial function with a function call in the recursive branch, but not a recursive call. This ‘nearly recursive’ style allows us to write factorial without using its name. We just assume we have a free-variable delegate to some function that performs the rest of the computation. At initialization time, set the delegate to refer to the function itself. Thus, replace recursion with a call through a free variable. Just another level of indirection, ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
6/1/2006 9:04:00 PM
Behind the scenes, I’m working on the lambda-execution mode for the IQ97. I’m hoping for a few tweaks to VB and LINQ before I can do this satisfactorily, but I can take the opportunity now—with the current CTP —to illustrate the general technique of defining functions with lambda and what I hope it might look like in VB some time down the road. This exercise raises a number of interesting technical issues: in particular, closures —environments for free variables, and currying —v ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
5/26/2006 5:31:00 PM
Get new drop: current VB9 Customer Technology Preview ( CTP ) . Copy the database Saturn5_002.mdf and Saturn5_002_log.LDF to c:\. Zipped VB9 project directory tree .
Apologies ... the previously posted versions of IQ97 were missing a source file, specifically, {lambda}Exec, where {lambda} is the UNICODE greek character. Turns out that Winzip silently refused to copy the file, so it was just absent from the source project. The workaround was simply to comment out ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
5/18/2006 9:45:00 PM
Get new drop: current VB9 Customer Technology Preview ( CTP ) . Copy the database Saturn5_002.mdf and Saturn5_002_log.LDF to c:\. Zipped VB9 project directory tree . The Hewlett-Packard manual exhibits the following command strings (last blog I said there were 256 possible and 236 used, but here there are 250 – the explanation is that I fold 19 command strings to uppercase, e.g., LBLa = LBLA, and there are five extension command strings, 19-5+236=250; this ... [ read more ]
|
by
brianbec via
Brian Beckman
on
5/18/2006 8:25:00 AM
Get new drop: current VB9 Customer Technology Preview ( CTP ) . Copy the database Saturn5_002.mdf and Saturn5_002_log.LDF to c:\. Zipped VB9 project directory tree . The nice thing about this project is that we can explore technologies quite fully, but in the context of a concrete, small, completely understandable application: a programmable calculator. Anyone who can understand a Hewlett-Packard calculator can understand VB9, LINQ, ADO.NET, comprehension ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
5/16/2006 10:56:00 PM
I’ll call my simulator of the HP97 the IQ97 (see if you can decipher the pun). Despite my effort at self-restraint, this has bloomed into a full-blown obsessive-compulsive sample work, as I can’t stop thinking of new things to do with it. So, rather than waiting until it’s all done, since there is no way to know when that will be, I’ll blog it out as I go along. A tremendous amount of interesting technology that deserves to be shown off has already gone into it. You’ll forgive the bits that ge ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
4/30/2006 5:45:00 PM
In 1976, 30 years ago, Hewlett-Packard Corporation introduced a landmark product: the HP97 portable, programmable, printing scientific calculator with magnetic-card storage. The HP97 was one of a matched pair with the HP67, the pocket version of the SAME calculator! These two could read and write the same magnetic cards containing programs and data, and they could execute the same programs. The pocket version, the HP67, did not have a printer, so it just paused the display when it executed a ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
3/19/2006 9:58:00 AM
Take three PhD specialists in programming languages, three PhD specialists in relational database, and three PhD specialists in network security, and seat them around a table. Now take three coconut-cream pies, three chocolate-cream pies, and three banana-cream pies and randomly place one pie in front of each philosopher. Finally, give them three hours to come up with a position paper on the concept of "Identity." Calculate how many philosophers at the end of three hours have three kinds of cr ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
3/17/2006 10:16:00 AM
Buckle up, boys and girls, we’re going to be little DBA’s today ! (Data Base Administrators) Earlier, we showed how to use LINQ over objects in memory. Today, we show how to write EXACTLY the same program, this time using DLINQ, over a real SQL-Express relational database. The whole DLINQ project, including the full data set of 3,053 rows, can be downloaded here . The earlier LINQ project – same program only over objects-in-memory, can be downloaded here . You will need t ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
3/16/2006 10:46:00 AM
One recurring but subliminal theme at the recent Compiler Dev Lab (via Devhawk) was how nice it is to do incremental, interactive development. I argue, here, that not only is it nice, it’s actually critically important. The argument is statistical. If you make ten changes to a program all at once, the number of ways of getting all ten of them right is just one, but the number of ways of getting at least one of them wrong is 1,023. And, if you get even one of them wrong, ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
3/15/2006 10:04:00 AM
In the terminology of relational databases, a “join” is, semantically, like a nested loop over a pair of lists (or tables) of records, saving only those where some certain fields match. Unless we do something smart, this could be very expensive. Imagine searching a database of a million DNA profiles for the closest match to a sample that has 10,000 DNA features (I have no idea whether those are real numbers: I just made them up, but they sound ballpark to me). A dumb join would search all 1 mi ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
3/10/2006 12:51:00 PM
In case you ever find yourself having to implement (or simulate, or emulate) a stack-based Virtual Machine, a-la Forth or PostScript or even the CLR itself, here's a handy programming pattern for your consideration. The rough idea is to give every instruction some state variables for remembering its arguments, with virtual methods for "execute" and "ToString" (for “explain” mode) and what not. An instance of the VM will have an instruction stream, an instruction pointer, a stack, and method ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
1/25/2006 11:32:00 AM
Ok, I'm a car nut . I've been hot-rodding around racetracks and autocrosses for as long as I can remember. Searching for extremes in the automobile sport leads to some interesting places, to be sure. So does searching for extremes in the computing world. So, what's your dream interface style? Is it a world of domain-specific languages, emacs, parser combinators, and ASCII (ok, ok, XML even) as the ultimate interchange meta*standard? Or is it a world of boxes, arrows, vertex shaders, and cl ... [ read more ]
|
|
by
brianbec via
Brian Beckman
on
9/2/2005 1:53:00 PM
I've lately been slurping up Visual Basic .NET. After seeing gobs of blogs in Haskell and Scheme, you might be forgiven for exclaiming "Say WHAT?" Well, VB is where programming is going, and I'm not just speaking as a company man, here. There is more energy, talent, and momentum behind VB than I have *ever* seen behind a programming system, and I've been in that game for a long time (been implementing languages since Forth was considered cool :). Here's a little goodie for you: ... [ read more ]
|
|
|
|