<*programming*> Strict enforcement of type rules but with
well-defined exceptions or an explicit type-violation
mechanism.
Weak typing is "friendlier" to the programmer than {strong
typing}, but catches fewer errors at compile time.
C and C++ are weakly typed, as they automatically coerce
many types e.g. ints and floats. E.g.
int a = 5;
float b = a;
They also allow ignore typedefs for the purposes of type
comparison; for example the following is allowed, which would
probably be disallowed in a strongly typed language:
typedef int Date; /* Type to represent a date */
Date a = 12345;
int b = a; /* What does the coder intend? */
C++ is stricter than C in its handling of enumerated types:
enum animal CAT=0,DOG=2,ANT=3;
enum animal a = CAT; /* NB The enum is optional in C++ */
enum animal b = 1; /* This is a warning or error in C++ */
(2000-07-04)

In computer programming, one of the many ways that programming languages are colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition of what the terms mean and different authors disagree about the implied meaning of the terms and the relative rankings of the "strength" of the type systems of mainstream programming languages.

Weak derivative

In mathematics, a **weak derivative** is a generalization of the concept of the derivative of a function (*strong derivative*) for functions not assumed differentiable, but only integrable, i.e., to lie in the L^{p} space $L^{1}([a,b])$.

The method of integration by parts holds that for differentiable functions $u$ and $\varphi$ we have

- ${\begin{aligned}\int _{a}^{b}u(x)\varphi '(x)\,dx&={\Big [}u(x)\varphi (x){\Big ]}_{a}^{b}-\int _{a}^{b}u'(x)\varphi (x)\,dx.\\[6pt]\end{aligned}}$

A function *u*' being the weak derivative of *u* is essentially defined by the requirement that this equation must hold for all infinitely differentiable functions *φ* vanishing at the boundary points ($\varphi (a)=\varphi (b)=0$).