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 FireStatsdiuretics and viagra

cialis daily cost

levitra online pharmacy

cialis vs levitra

cialis fast delivery

levitra cheap

5 mg cialis

buying levitra online

cialis fast delivery usa

low price cialis

cheapest online propecia

how much does cialis cost

buy propecia online without prescription

canada viagra

generic propecia uk

cialis dosage mg

cialis daily availability

buy levitra online from canada

drug generic propecia

buy levitra vardenafil

bruising on cialis

buying viagra in the us

buy pfizer viagra online

cialis blood thinner

canadian viagra generic

cialis at real low prices

canadian healthcare pharmacy

buy viagra in canada

cheap fast levitra

how does viagra work

cheap propecia no prescription

best price for generic cialis

order propecia pill

cheap order prescription propecia

mail order propecia

buy viagra in canada

buy cialis online without prescription

discount levitra pharmacy purchase

canadian propecia cheap

cialis canada illegal buy

indian cialis canada

cialis discounts

buy propecia pills

levitra online order

gele viagra

cialis delivered overnight

canada propecia prescription

brand cialis

buy vardenafil levitra

buy viagra without prescription

buying cialis soft tabs 100 mg

canadian healthcare

cialis generic 100 mg

buy propecia online cheap pharmacy

cialis in canada

canadian healthcare cialis

how to get viagra

lowest priced propecia

generic levitra cialis

online propecia prescription

buy levitra american pharmacy

canada viagra pharmacies scam

discount propecia propecia

buy daily cialis

brand viagra

best propecia prices

cialis women

how to get cialis no prescription

best price for propecia

cialis profesional

generic online propecia

cialis daily availability

cialis professional 100 mg

buy propecia online

cheap price propecia

best viagra

cialis for sale

canada propecia prescription

buy cheap propecia

cialis canadian pharmacy

buy cheap levitra

buy levitra with no prescription

generic levitra usa

canadian generic cialis

buy cialis in canada

5mg propecia

canada viagra generic

cialis discount prices

buy propecia online usa

buy now propecia

levitra now online

cialis 30 mg

lowest cost propecia uk

best price levitra online

baldness male propecia

canadian healthcare viagra

buy cialis online without prescription

buy cialis online without prescription

buying viagra with no prescription

order viagra or levitra

online pharmacy propecia renova

cialis trazodone

mexico viagra

cialis price in canada

buy propecia on line

buying real viagra without prescription

canada viagra

one day delivery cialis

brand viagra over the net

canadian generic viagra online

buy cialis professional

cialis and canada custom

how to get cialis in canada

lowest price propecia best

buy branded viagra

buy viagra on line

cialis 50 mg dose

online pharmacy cost levitra

cialis 5 mg italia

cheap viagra on line

canadian viagra and healthcare

index

buy now online propecia

for sale levitra

indian cialis canada

buy real cialis

buy viagra online cheap us

canadian viagra and healthcare

buy generic cialis

cheap online levitra

express viagra delivery

dosage levitra

map of france with cialis

levitra online no prescription

buy canada levitra

canadian pharmacy viagra legal

cialis no rx

buy cheap online propecia

generic levitra india

generic viagra 100 mg

index

cialis dosage

canadian viagra generic

canadian healthcare viagra sales

indian cialis generic

buy levitra by mail

canada levitra

mexico pharmacy cialis

cheap propecia uk

cheap cialis soft

cheapest propecia uk

cheap levitra tablets

buy propecia online

canadian levitra

cialis fast

generic levitra pill

beta blockers and viagra

cialis daily price

buy propecia in canada

cost of daily cialis

cost of cialis

cialis quick shipment

lowest price for levitra

effect of cialis on women

how to get cialis in canada

levitra tablet

cialis generic 100 mg

buy dosages levitra

buy cheap generic propecia

canadian viagra

cheapest prices on propecia

cialis iop

cialis fast delivery

buying cialis

cialis alternitives

buy propecia cheap

how does viagra work

cheap cialis fast delivery time

levitra lowest price

buy propecia canada

canada online pharmacy propecia

cheap viagra from uk

cialis canadian cost

cheap viagra canada or india

buy cialis cannada

cheapest priced propecia

cheap canadian viagra

cialis 100 mg generic

cialis online canada

order levitra online

cialis daily dosage pharmacy

bio viagra herbal

5 mg daily cialis

cialis kanada

canada viagra pharmacies scam

best price generic propecia

cialis express delivery

canada pharmacy propecia

canadian levitra

buy propecia no prescription

buy cheapest propecia

cialis by women

brand cialis for sale

discount brand name cialis

cialis express delivery

cialis tablets

order cheap propecia

buy cialis online canada

canada meds viagra

one day delivery cialis

buy online propecia

buying cialis next day delivery

levitra ed

bestellen levitra online

low price cialis

hydrochlorothiazide cialis

levitra in uk

best price on propecia

combine cialis and levitra

cheapest online propecia

cialis online canada

levitra where to buy

cialis blood thinner

50 mg cialis

lowest price levitra generic online

buy viagra china

cialis 100 mg

buy viagra germany canadian meds

cheap viagra no prescription

cheap cialis soft

buying cialis online

cialis professional 20 mg

levitra online prescription

female viagra

buy levitra online viagra

buying viagra

online order viagra overnight delivery

buy real cialis

cialis cheap

cialis kanada

generic viagra

combine cialis and levitra

china viagra

cialis levitra sales

mail order levitra

buying viagra without prescription

cialis 100 mg

cialis okay for women

buying generic cialis mexico rx

cheap propecia online