Archive

Posts Tagged ‘ACCU’

The complexity of three assignment statements

April 15th, 2009 Derek-Jones No comments

Once I got into researching my book on C I was surprised at how few experiments had been run using professional software developers. I knew a number of people on the Association of C and C++ Users committee, in particular the then chair Francis Glassborow, and suggested that they ought to let me run an experiment at the 2003 ACCU conference. They agreed and I have been running an experiment every year since.

Before the 2003 conference I had never run an experiment that had people as subjects. I knew that if I wanted to obtain a meaningful result the number of factors that could vary had to be limited to as few as possible. I picked a topic which has probably been the subject of more experiments that any other topics, short term memory. The experimental design asked subjects to remember a list of three assignment statements (e.g., X = 5;), perform an unrelated task that was likely to occupy them for 10 seconds or so, and then recognize the variables they had previously seen within a list and recall the numeric value assigned to each variable.

I knew all about the factors that influenced memory performance for lists of words: word frequency, word-length, phonological similarity, how chunking was often used to help store/recall information and more. My variable names were carefully chosen to balance all of these effects and the information content of the three assignments required slightly more short term memory storage than subjects were likely to have.

The results showed none of the effects that I was expecting. Had I found evidence that a professional software developer’s brain really did operate differently than other peoples’ or was something wrong with my experiment? I tried again two years later (I ran a non-memory experiment the following year while I mulled over my failure) and this time a chance conversation with one of the subjects after the experiment uncovered one factor I had not controlled for.

Software developers are problem solvers (well at least the good ones are) and I had presented them with a problem; how to remember information that appeared to require more storage than available in their short term memories and accurately recall it shortly afterwards. The obvious solution was to reduce the amount of information that needed to be stored by simply remembering the first letter of every variable (which one of the effects I was controlling for had insured was unique) not the complete variable name.

I ran another experiment the following year and still did not obtain the expected results. What was I missing now? I don’t know and in 2008 I ran a non-memory based experiment. I still have no idea what techniques my subjects are using to remember information about three assignment statements that are preventing me getting the results I expect.

Perhaps those researchers out there that claim to understand the processes involved in comprehending a complete function definition can help me out by explaining the mental processes involved in remembering information about three assignment statements.

Finding the ‘minimum’ faulty program

March 17th, 2009 Derek-Jones No comments

A few weeks ago I received an inquiry about running a course/workshop on compiler writing. This does not does not happen very often and it reminded me that many years ago the ACCU asked if I would run a mentored group on compiler writing, I was busy writing a book at the time. The inquiry got me thinking it would be fun to run a compiler writing mentored group over a 6-9 month period and I emailed the general ACCU reflector asking if anybody was interested in joining such a group (any reader wanting to join the group has to be a member of the ACCU).

Over the weekend I had a brainwave for a project, automatic compiler test generation coupled with a program source code minimizer (I need a better name for this bit). Automatic test generation sounds great in theory but in practice whittling down the source code of those programs that result in a fault being exhibited, to create a usable sized test case that is practical for debugging purposes can be a major effort. What is needed is a tool to automatically do the whittling, i.e., a test case minimizer.

A simple algorithm for whittling down the source of a large test program is to continually throw away that half/third/quarter of the code that is not needed for the fault to manifest itself. A compiler project that took as input source code, removed half/third/quarter of the code and generated output that could be compiled and executed is realistic. The input/reduce/output process could be repeated until the generated source was considered to have reached some minima. Ok, this will soak up some cpu time, but computers are cheap and people are expensive.

Where does the test source code come from? Easy, it is generated from the same yacc grammar that the compiler, written by the mentored group member, uses to parse its input. Fortunately such a generation tool is available and ready to use.

The beauty is using the same grammar to generate tests and parse input. This means there is no need to worry about which language subset to use initially and support for additional language syntax can be added incrementally.

Experience shows that automatically generated test programs quickly uncover faults in production compilers, even when working with language subsets. Compiler implementors are loath to spend time cutting down a large program to find the statement/expression where the fault lies, this project will produce a tool that does the job for them.

So to recap, the mentored group is going to write one or more automatic source code generators that will be used to stress test compilers written by other people (e.g., gcc and Microsoft). Group members will also write their own compiler that reads in this automatically generated source code, throws some of it away and writes out syntactically/semantically correct source code. Various scripts will be be written to glue this all together.

Group members can pick the language they want to work with. The initial subset could just include supports for integer types, if-statements and binary operators.

If you had trouble making any sense all this, don’t join the group.

FireStats icon Powered by FireStatsbrand viagra

buy cialis 5 mg

best online levitra

brand cialis for sale

dose cialis

buy pfizer viagra online

cialis and ketoconazole

cialis discount prices

levitra tadalafil

discount drug propecia

cheap propecia online prescription

best deal for propecia

cheap canadian viagra

discount levitra online viagra

cheepest cialis

buying viagra

bestellen levitra online

cialis fast delivery

levitra online sales

buy cheap online propecia

cialis fast delivery

canadian pharmacy cialis pfizer

online pharmacy propecia sale

generic propecia mastercard

cialis headaches

buy generic propecia online

buy cheap levitra online

cheap propecia uk

cheapest overnight cialis

generic levitra purchase

levitra paypal

generic cialis canadian

how you get pfizer viagra

buy cialis in canada

5 mg original brand cialis

cost of daily cialis

best price levitra

cialis from india

buy levitra by mail

cialis trazodone

one day cialis

cheap viagra or cialis

chip cialis

buy viagra germany canadian meds

cheap propecia online prescription

cialis daily price

cheap canadian viagra

levitra online order

buy propecia online without prescription

mail online order propecia

cheap prescription propecia

buy daily cialis

cheap levitra without prescription

cialis buy

cialis by women

levitra info

best prices for propecia

cialis in canada

best price for propecia

canadian generic cialis

online ordering propecia

buy propecia online prescription

buying propecia online

cheap fast levitra

cialis india pharmacy

fast propecia

buy cialis online uk

how strong is 5 mg of cialis

online propecia sales

buy cheapest cialis

canadian healthcare cialis

cheapest propecia prescription

cialis dosage

levitra viagra online

canadian generic viagra online

cheapest propecia sale uk

buy levitra uk

buy vardenafil levitra

bio viagra herbal

generic cialis india discount

get propecia online pharmacy

cialis germany

ordering propecia online

buy viagra germany canadian meds

canada pharmacy propecia

buy viagra online

buy canada levitra

cialis 100 mg

levitra cheap canadian pharmacy

generic propecia sale

generic levitra cheap

levitra vs viagra

bruising on cialis

cialis cheap

how much does cialis cost

best viagra

get cialis

online cialis

order levitra

generic viagra made in usa

buy propecia cheap

lowest price on non generic levitra

lowest propecia prices

cialis daily canada

buy viagra in canada

buy levitra now

cialis 5 mg buy

buying cialis in canada

buy pfizer viagra in canada

cialis 100 mg generic

buy 5 mg cialis

buying levitra online

cialis blood thinner

buy cheap levitra

buying cialis soft tabs 100 mg

canada generic propecia

lowest propecia 1 mg

canada viagra

cialis online canada

canadian healthcare viagra

low price propecia

cialis canadian

brand cialis

discount generic propecia

generic viagra from china

levitra from canadian pharmacy

cialis kanada

order usa viagra online

cheap generic levitra

generic cialis in india

cialis tablets foreign

original brand cialis

ordering viagra overnight delivery

buy cialis usa

buy viagra in canada no prescription

cialis dose

buying cialis soft tabs 100 mg

buy dosages levitra

female viagra pills

cialis 20 mg

cialis india

cheapest viagra

buy levitra with no prescription

canadian healthcare

discount canadian cialis

generic viagra india

get cialis online

map of france with cialis

50 mg cialis

cheap propecia canada

buy cheap generic levitra

cialis alternative

indian generic levitra

buy cialis professional

cheapest propecia online

buy cialis professional

beta blockers and viagra

cialis daily in canada

generic levitra pill

generic cialis sale

best price for generic cialis

cialis pharmacy

beta blockers and viagra

cialis daily in canada

cost of viagra

generic levitra cialis

online pharmacy levitra

bying viagra online cheap us

cialis brand only

cialis for sale

cheapest cialis

cheap cialis

cheap viagra

cialis daily cost

cialis daily availability

cialis next day

buy fast propecia

cialis 50 mg

brand viagra without prescription buy

cialis canadian cost

canadian viagra india

non pescription cialis

buy cheap generic propecia

generic viagra online

buy cialis online

cheap viagra no prescription

buy pfizer viagra

best price levitra online

canadian propecia rx

canada generic propecia

buy generic cialis

buy generic propecia online

cialis cost

cheap cialis fast delivery time

overnight delivery cialis

buy cialis online canada

buy propecia now

cheapest propecia uk

buy levitra online us

cialis soft pills

cialis for less 20 mg

discount us propecia

get propecia cheap

how to get cialis no prescription

canadian generic cialis

canadian drug viagra soft

cheap viagra from uk

buy mg propecia

levitra sale

generic viagra made in india

cialis 5 mg

cialis cost

cialis testimonial

canadian propecia rx

buy cialis cannada

levitra online us

canadian levitra

cialis for women

cialis daily dosing cost

buy propecia without a prescription

best price levitra online

cialis once daily

levitra vs cialis

5 mg cialis canada

cialis by women

buying levitra online

best levitra prices

buy propecia now

buy cialis in usa

buy propecia online prescription

canadian healthcare pharmacy

buy cheap online propecia

cheap viagra no prescription

buy pfizer viagra online

gerenic cialis

buy vardenafil levitra

buying generic propecia

cheap propecia online

levitra next day delivery

drug propecia

cialis woman

best online generic levitra

buy viagra mexico

canadian healthcare viagra sales

discount levitra rx

buy levitra overnight

canadain viagra india

cialis generic

brand name cialis

levitra buying