As a web programming language, one of PHP’s strengths traditionally has been to make it easy to write scripts that access databases so that you can create dynamic web pages that incorporate database content. This is important when you want to provide visitors with information that is always up-to-date, without hand tweaking a lot of static HTML pages. However, although PHP is easy to use, it includes no general-purpose database access interface. Instead it has a number of specialized ones that take the form of separate sets of functions for each database system. There is one set for MySQL, another for InterBase, and another for PostgreSQL—and others as well.
Read the rest of this entry »
Among Computer Science educators, hardly any topic inspires more heated debate than the choice of programming language in the introductory sequence. In the late 80s, the uniformly accepted choice was Pascal, but since then, a host of alternatives have come into use. C++ seems to have emerged as the winner, while Pascal, C, Ada, Scheme, and Modula-3 split most of the remaining market.
Read the rest of this entry »
What: We are developing a tool to track variables and their values in C programs as they change at runtime. Because of the low-level, unrestricted memory access the language allows, the challenge lies in collecting accurate information without disrupting the program’s execution. Our approach combines techniques from profiling with memory tracking to analyze dynamic allocation throughout the lifetime of a program.
Read the rest of this entry »
Although Python is a high-level language, it is not English or some other natural human language. The Python translator does not understand “add the numbers two and three”. Python is a formal language with its own specific rules and formats, which these tutorials will introduce gradually, at a pace intended for a beginner. These tutorials are also appropriate for beginners because they gradually introduce fundamental logical programming skills. Learning these skills will allow you to much more easily program in other languages besides Python. Some of the skills you will learn are
Read the rest of this entry »
We present a regression test selection technique for C# programs. C# is fairly new and is often used within the Microsoft .Net framework to give programmers a solid base to develop a variety of applications. Regression testing is done after modifying a program. Regression test selection refers to selecting a suitable subset of test cases from the original test suite in order to be rerun. It aims to provide confidence that the modifications are correct and did not affect other unmodified parts of the program. The regression test selection technique presented in this paper accounts for C#.Net specific features. Our technique is based on three phases; the first phase builds an Affected Class Diagram consisting of classes that are affected by the change in the source code. The second phase builds a C# Interclass Graph (CIG) from the affected class diagram based on C# specific features. In this phase, we reduce the number of selected test cases. The third phase involves further reduction and a new metric for assigning weights to test cases for prioritizing the selected test cases. We have empirically validated the proposed technique by using case studies. The empirical results show the usefulness of the proposed regression testing technique for C#.Net programs.
Read the rest of this entry »
This book is concerned with concepts in programming languages, issues in their implementation, and how language design affects program development. It is aimed at upper-level undergraduate students and beginning graduate students with some experience in procedural and OO programming. Functional programming experience is claimed to be helpful but non-essential. As a teaching text, it competes with a similarly-named book by Sebesta, a book by (Wilson and) Clark, and others.
Read the rest of this entry »
Why do we write documentation? Silly question. Because we want others to be able to use our program, library function or whatever we have written and made available. But writing documentation is not all there is to it: Documentation must be accessible. If it’s hidden in some non?standard place where the documentation?related tools won’t find it ?? how can it serve its purpose?
Read the rest of this entry »
Adaptive algorithms are an important technique to achieve portable high performance. They choose among solution methods and optimizations according to expected performance on a particular machine. Grid environments make the adaptation problem harder, because the optimal decision may change across runs and even during runtime. Therefore, the performance model used by an adaptive algorithm must be able to change decisions without high overhead. In this paper, we present work that is modifying previous research into rapid performance modeling to support adaptive grid applications through sampling and high granularity modeling. We also outline preliminary results that show the ability to predict differences in performance among algorithms in the same program.
Read the rest of this entry »